6818開發板uboot、kernel、rootfs編譯記錄
目錄
前言
因為前面編譯過一次6818的uboot、kernel和rootfs。但是是在root使用者下編譯的,結果在開發板上執行出現錯誤。文件上寫必須在普通使用者,所以又在普通使用者下重新編譯一次。但是因為沒有及時記錄下編譯過程,結果又要重新造輪子,效率更低!
編譯環境介紹
- ubuntu : ubuntu16.04
- uboot : u-boot-2014.07
- kernel : kernel-3.4.39
- toolchain : gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf
uboot編譯記錄
- 問題:
soft -float & VFP hard
- 解決方法:
預設u-boot的編譯要支援arm-linux-guneabihf-編譯器編譯需要修改一些選項。
具體:參見連結
在這個連結中,介紹要修改arch/arm/cpu/armv7/config.mk
中的語句如下:
PLATFORM_RELFLAGS += -fno-common --ffixed-r8 -msoft-float
修改為
PLATFORM_RELFLAGS += -fno-common --ffixed-r8 -mfloat-abi=hard
但是,我的uboot下沒有armv7
這個目錄,然後我在arch/arm/config.mk
PLATFORM_RELFLAGS += $(call cc-option, **-msoft-abi=float**) \
$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
修改為:
PLATFORM_RELFLAGS += $(call cc-option, **-msoft-abi=hard**) \
$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps ,))
然後,再次編譯,順利通過。
kernel編譯記錄
kernel新增攝像頭驅動
kernel的編譯沒有出現問題,主要我需要kernel支援usb攝像頭驅動。這裡我的開發板說是支援羅技C270,然後我找到這篇 linux下通過V4L2驅動USB攝像頭,詳解請檢視這篇部落格。我需要做的就是新增上這個驅動模組。
具體過程如下:
在kernel
中make menuconfig
,然後找到:
Device Drivers --->
Multimedia support --->
Video capture adapters --->
V4L USB devices ---
USB Video Class (UVC)
選擇編譯<Y>
或者M
,然後儲存
最後編譯即可。注意:如果你的核心有預設的config檔案,而每次編譯都會直接載入預設的config檔案,這時候我們的配置.conifg
會被預設載入的config
檔案而覆蓋,結果就是我們的配置沒有生效。所以要注意!
配置成功後的核心,在羅技C270USB攝像頭插入,secureCRT列印如下:
[14706.500000] usb 1-1.3: new high-speed USB device number 4 using nxp-ehci
[14706.806000] usb 1-1.3: New USB device found, idVendor=046d, idProduct=0825
[14706.807000] usb 1-1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=2
[14706.814000] usb 1-1.3: SerialNumber: 77A9EA40
[14706.820000] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0825)
[14706.916000] input: **UVC Camera (046d:0825)** as /devices/platform/nxp-ehci/usb1/1-1/1-1.3/1-1.3:1.0/**input/input7**
後期,對USB攝像頭的操作繼續補充!
kernel新增HDMI介面驅動
因為開發板是支援HDMI輸出的,但是博主直接使用HDMI的轉接頭外接顯示屏的時候,沒有輸出。查詢s5p4418 s5p6818純hdmi顯示輸出配置(支援ubuntu、qt)後發現,如果選擇HDMI顯示輸出,LCD屏將無法顯示。也就是說HDMI和LCD顯示只能選擇一種,預設是LCD顯示。所以,博主需要重新編譯核心,使得核心執行HDMI輸出顯示。
博主記:雖然添加了HDMI驅動,但是預設仍然是LCD顯示,導致HDMI無法正常輸出。博主以為是HDMI驅動的問題,但是今天想想也可能是uboot的引數的問題,最後通過設定bootargs解決。
kernel新增OV5645(MIPI)介面驅動
博主需要接入OV5645
的MIPI
介面的驅動,主要原因是核心支援OV5645
的驅動,博主需要做的就是在核心中新增OV5645
驅動,在網上查詢並沒有找到6818
中OV5645
的驅動放置位置,但是6818
的開發文件中說明是支援OV5645
的,配置核心的步驟如下:
1. 博主查詢榮品四核S5P4418開發板之攝像頭OV5645除錯中說明驅動檔案是ov5645.c
,於是在核心中使用find -name ov5645.c
找到了ov5645.c
的路徑如下:./drivers/media/video/ov5645.c
。
- 進入
./drivers/media/video
目錄下查詢到如下:
config VIDEO_OV5645
tristate "ov5645 mipi camera support"
depends on VIDEO_V4L2 && I2C
help
This is a V4L2 camera driver for the OmniVision OV5645 sensor
說明在make menuconfig
中我們只要找到config_VIDEO_OV5645
然後進行配置即可。
3. 在核心目錄下進入make menuconfig
,按下/
鍵,搜尋config_VIDEO_OV5645
即可找到對應的驅動的位置。
Symbol: VIDEO_OV5645 [=n] │
│ Type : tristate │
│ Prompt: ov5645 mipi camera support │
│ Defined at drivers/media/video/Kconfig:659 │
│ Depends on: MEDIA_SUPPORT [=y] && VIDEO_CAPTURE_DRIVERS [=y] && VIDEO_V4L2 [=y] && I2C [=y] && !VIDEO_HELPER_CHIPS_AUTO [=n] │
│ Location: │
│ -> Device Drivers │
│ -> Multimedia support (MEDIA_SUPPORT [=y]) │
│ -> Video capture adapters (VIDEO_CAPTURE_DRIVERS [=y]) │
│ -> Encoders, decoders, sensors and other helper chips
rootfs編譯記錄
- 問題:
In file included from ../ncurses/curses.priv.h:283:0,
from ../ncurses/lib_gen.c:19:
_92932.c:835:15: error: expected ')' before 'int'
../include/curses.h:1594:56: note: in definition of macro ‘mouse_trafo’
#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) ^
Makefile:790: recipe for target '../objects/lib_gen.o' failed
- 解決方法:
參見連結,文中指出找到ncurses
目錄,我通過find -name "curses.priv.h"
找到了ncurses
目錄。具體如下:
rootfs/output/build/host-ncurses-5.9
然後在這個目錄下進入include
目錄:
vi curses.h
搜尋mouse_trafo
,然後去除後面一行的註釋:generated
extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); **/* generated */**
然後vi curses.tail
通過找到mouse_trafo
,然後去除後面的註釋/*generated*/
extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */
最後,編譯即可。
總結
感覺開發就是沒有成功之前,哪裡都是問題,成功了之後,什麼問題都不是問題!此處有滑稽表情!當時真是腦子抽了選了研發!