Вот что я придумал (на основе нескольких онлайн-источников и некоторых экспериментов).
hex2bin
): #!/bin/sh
sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' "$1" | xargs printf
bin2hex
): #!/bin/sh
hexdump -C "$1" | cut -b9- | cut -d"|" -f1 | tr -d ' \t\n\r'
./bin2hex binary_file_1 | ./hex2bin - > binary_file_2
diff -s binary_file_1 binary_file_2
Это работает с busybox, но hex2bin, к сожалению, ограничен максимальной длиной аргумента xargs
, поэтому этот метод будет работать только для небольших файлов (менее 32 КиБ в моей настольной системе).
Чтобы узнать прошивку, которую ваша система ищет, но не может найти (это прошивка, которая может вам понадобиться), вы должны искать сообщения, связанные с прошивкой в журналах ядра:
dmesg | grep firmware
Это даст вам имена файлов прошивки, которые ядро ищет; apt-файл
сообщит вам, какой пакет установить (если встроенное ПО уже упаковано).
У вас есть система Skylake, работающая с графическим процессором Intel, вам, вероятно, понадобится как минимум firmware-misc-nonfree
(для графических процессоров Skylake требуется микропрограмма):
apt-get -t jessie-backports install firmware-misc-nonfree
Это исправит i915
Ошибки загрузки прошивки. Последовательность сообщений iwlwifi
заканчивается загруженной версией прошивки 16.242414.0 op_mode iwlmvm
, так что все в порядке; также успешно загружается микропрограмма Bluetooth (она также содержится в пакете firmware-iwlwifi
).