Pull to refresh

Comments 5

Проверялось ли это на реальном железе?
В частности интересно будет посмотреть на результаты систем без PCI-шины, к примеру на Z68 или H67 чипсетах.
Конечно, PCIe имеет обратную программную совместимость с PCI, но всё же занятно было бы взглянуть на корректность и полноту полученного перечня.
PCIe будет работать абсолютно так же. С точки зрения настройки они в этом месте не отличаются — такое же точно конфигурационное пространство с теми же регистрами.
Отличается оно в физическом уровне (последовательно-параллельная шина с 8/10 или более оптимальным кодированием) и в форме разъёма.
CFLAGS = -Wall -nostdlib -fno-builtin -nostartfiles -nodefaultlibs

-nostdlib, -nostartfiles и -nodefaultlibs тут не нужны, вы же линкуете не gcc, а вот -nostdinc не помешал бы, чтобы не получить прототипы из системных заголовков.

qemu /dev/sdb

QEMU, кстати, умеет загружать multiboot-ядра опцией -kernel: qemu -kernel kernel.bin

Для установки GRUB-а на флешку используется expect-скрипт в файле grub_install.exp

А можно было бы проще:
cat <<EOF | grub --batch
root (hd1,0)
setup (hd1)
quit
EOF

Ещё момент: у вас есть секция bss, но код инициализации её нулями в loader отсутствует.
А чего это вы так Windows выделили? Все операционки находят драйвер по PCI IDs (VID/PID). В линуксе в каждом драйвере указан набор ID устройств, которые он может обслужить.
Если хочется «принудительно» попытаться завести драйвер с новым устройством, можно его IDs отправить в файлик new_id соответствующего драйвера в sysfs, примерно так:

echo «8086 0700» >> /sys/bus/pci/drivers/.../new_id

После этого, если устройство не было ассоциировано с каким-то другим драйвером, подхватится этим — потому, что этому драйверу сказали «обслуживай устройства с такими-то ID».

Был случай, когда я так заводил RAID-контроллер на какой-то матери Supermicro — они зачем-то для известного FusionMPT (драйвер mptsas) указали те ID, которых в старом ядре не было. (В новом уже были, кто-то позаботился.)

Что интересно, rev в линуксе не используется для выбора драйвера, только самими драйверами.
Sign up to leave a comment.