Дорога длинная и затрудненная, и очередь приближается. Опусти голову и много работай, если не будешь говорить, ты будешь блокбастером! Давай, Сан Ньянь!
1 Ссылка
1. Технические данные микросхемы: TL8188FCA.pdf
2. Руководство по переносу драйверов: Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf
3. [Punctual Atom] i.MX6U Руководство по разработке встроенного драйвера Linux, версия 1.3.pdf
4. Linux добавляет драйвер Wi-Fi: https://blog.csdn.net/sbddbfm/article/details/101222266
5. Есть несколько руководств от других предшественников, большое спасибо!
2 Введение в окружающую среду
1. Используется микроконтроллер серии Nuvoton NUC980;
2. Версия ядра Linux: 4.4.179;
3. Версия цепочки кросс-компиляции
arm-none-linux-gnueabi-gcc
gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)
4. Исходный код драйвера модуля WiFi, предоставленный поставщиком;
3 миграция драйверов
1, RTL8188FU
накопитель добавлен в Linux
ядро;
-
По
drivers/net/wireless
пути к новой папкеrealtek_new
; -
Источник движения
RTL8188FU_Linux_v5.7.4_33085.20190626\driver\rtl8188FU_linux_v5.7.4_33085.20190419
после распаковки вrealtek_new
папку; -
Измените имя папки на
rtl8188fu
;
2. Изменить drivers/net/wireless/Kconfig
- Открываем
drivers/net/wireless/Kconfig
, добавляем последнюю строчку файла
source "drivers/net/wireless/realtek_new/Kconfig"
3. Изменить drivers/net/wireless/Makefile
- Открываем
drivers/net/wireless/Makefile
, добавляем последнюю строчку файла
obj-y += realtek_new/
4. Новый файл drivers/net/wireless/realtek_new/Makefile
- Новый файл
Makefile
, добавьте следующий контент, сохраните
obj-$(CONFIG_RTL8188FU) += rtl8188fu/
5. Новый файл drivers/net/wireless/realtek_new/Kconfig
- Новый файл
Kconfig
, добавьте следующий контент, сохраните
menuconfig REALTEK_WIFI
tristate "Realtek wifi"
if REALTEK_WIFI
choice
prompt "select wifi type"
default RTL8189FU
config RTL8188FU
depends on REALTEK_WIFI
tristate "Realtek 8188FU USB WiFi"
endchoice
endif
6, выключите Debug
функцию
- Откройте файл
drivers/net/wireless/realtek_new/rtl8188fu/Makefile
; - Строка 88, определение макроса
CONFIG_RTW_DEBUG=y
было измененоCONFIG_RTW_DEBUG=n
; - В противном случае будет напечатано много отладочной информации, что повлияет на нормальное использование;
- После модификации, как показано на рисунке ниже:
87 ########################## Debug ###########################
88 CONFIG_RTW_DEBUG = n
89 # default log level is _DRV_INFO_ = 4,
90 # please refer to "How_to_set_driver_debug_log_level.doc" to set the available level.
91 CONFIG_RTW_LOG_LEVEL = 4
92 ######################## Wake On Lan ##########################
4 Конфигурация ядра
1. Настройте устройства поддержки USB.
Device Drivers --->
[*] USB support --->
<*> Support for Host-side USB
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD (USB 1.1) support
<*> ChipIdea Highspeed Dual Role Controller
[*] ChipIdea host controller
[*] ChipIdea driver debug
2. Настройте поддержку устройств Wi-Fi.
Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
[*] Support for non-volatile firmware download
3. Конфигурация поддерживает IEEE 802.11.
[*] Networking support --->
-*- Wireless --->
[*] cfg80211 wireless extensions compatibility
<*> Generic IEEE 802.11 Networking Stack (mac80211)
4. Настроить драйвер RTL8188FU.
- Поскольку RTL8188FU не требует загрузки дополнительных файлов прошивки, нет необходимости настраивать драйвер как модуль;
- Скомпилируйте драйвер непосредственно в ядро, чтобы RTL8188FU был инициализирован автоматически после загрузки, и не было необходимости вручную загружать модуль драйвера после загрузки;
Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
<*> Realtek wifi --->
--- Realtek wifi
<*> select wifi type (Realtek 8188FU USB WiFi) --->
5. В корневом пути папки с исходным кодом ядра выполните команду:
make uImage -j16
6. Компиляция завершена;
5 Простой тест
1. Подключите модуль WiFi к плате управления;
2. Используйте только что скомпилированное ядро и перезапустите программу;
3, используйте ifconfig -a
тест команды ;
4. Если вы видите сетевую карту wlan0, это означает, что драйвер может работать нормально, в противном случае проверьте, не ошиблись ли предыдущие шаги настройки;
5. Мои результаты тестирования следующие:
[root]#ifconfig -a
dummy0 Link encap:Ethernet HWaddr 12:DE:F0:8F:D4:1B
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 40:00:02:B3:D2:34
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:336 errors:0 dropped:138 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:95476 (93.2 KiB) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 68:B9:D3:B2:90:C8
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Что ж, это содержание номера, желаю вам всего наилучшего, до встречи в следующем номере!
Если содержание статьи неверное, пожалуйста, прокомментируйте / личное сообщение, много советов! Если вы считаете, что содержание статьи неплохое, не забудьте щелкнуть четыре ссылки (например, добавить в закладки, оставить сообщение, подписаться), если вы можете щелкнуть подписку, это для меня величайшее воодушевление, и это будет мотивация для моего творчества, спасибо!