이전글....https://runman93.tistory.com/122 Buildroot 를 사용하여 임베이디드 시스템 구축 #2Buildroot를 사용하여, 임베이디드 시스템을 구축하기 위한 작업들을 진행해 봅니다. 우선 Buildroot를 Download 받아서 설치 해야 합니다. Source를 Download 하기 위해서는 크게 2가가 있습니다.Buildroot.orgrunman93.tistory.com 후속 글이 많이 늦었습니다. Buildroot를 사용하여 가지고 있는 ARM 32Bit 기반의 OrangePI one Board에 사용 할 Linux kernel 6.8.x 이상의 SD Card에 퓨징이 가능한 Image를 제작 하려고 했습니다만, 몇번 만들어 보면서, Buildroot내에 gcc..
앞선 글에서 GCC Source를 Compile 도중 Error를 해결하는 내용을 설명 했습니다. https://runman93.tistory.com/131 GNU GCC Source 로 나만의 arm 기반 Compiler 구축 #2앞선 글에서 Error의 원인을 찾고자 분석을 했습니다.2024.11.26 - [개발자 이야기/ARM Cross Compile] - GNU GCC Source로 나만의 arm 기반 Compiler 구축 GNU GCC Source로 나만의 arm 기반 Compiler 구축기간 VirtualBox의 Urunman93.tistory.com 앞선 Error는 Compiler에서 지원할수 없는 C++23, C++26에 대한 내용 이었습니다만이번에는 또다른 Error가 발생 했네요.. ..
Linux Kernel을 Cross Compile을 하다 보면, Network Driver가 없어서 추가를 해야 하는 경우가종종 발생 합니다. 저의 경우 OrangePI One 이라는 Board를 사용하다보니 WIFI 기능이 없어서, USB WIFI를 장착 후 테스트를 했으나, 인식을 못하는 경우가 발생 했습니다. 그래서 Driver Source를 받아서 Compile를 해보니 Driver 단독 Compile 할때는 문제가 없었으나Kernel에 삽입해서 사용하기 위해서 Kernel Driver에 Copy 후 Kernel Compile을 하게 되면아래와 같은 Error가 발생하게 됩니다. Error 원인을 찾다 보니, 아래 설정을 추가해야 정상적으로 Compile이 가능 하게 됩니다.
현재 가지고 있는 OrangePI (SBC) Board를 가지고 Linux Kernel의 Cross Compile 및 U-Boot Cross Compile을 사용하여 Bootring 까지는잘 마무리 되었습니다. 문제는 기존의 Root File System에서 사용되는 Library가 너무 옛날 버전이고Package Manager (apt-get)에서 arm 기반 Application을 받아와도 너무 옛날 버전이라는 문제 였습니다. 내부에서 사용되는 C++ Compiler는 C++11 까지만 지원되고 있고,저의 경우 C++17을 사용하기 때문에 필수적으로 Library들을 최신으로 사용하고 했습니다. 결국 Builroot를 사용하여 구축해 보기로 했습니다. Buildroot 임베이디드 개발자들을 위한 통합..
Linux의 ramdisk의 RootFile System의 디렉토리를 구성한 후에는 디렉토리내 내에서 다음 아래 실행find . | cpio -H newc -o | gzip -c > ../Initrd.gzInitrd.gz 파일이 생성되면 u-boot가 포함된 gzip으로 압축.mkimage -n 'uboot ramdisk rootfs' -A arm -O linux -T ramdisk -C gzip -a 0 -e 0 -d Initrd.gz uInitrduInitrd 파일이 최종적인 RooFile System 파일이 됩니다.생성된 uInitrd 의 Header정보를 확인 합니다. mkimage -l uInitrd
OrangePI one 제품에는 USB 단자가 있습니다.다만 기본 OS Image에는 USB WIFI를 인식 할수 있는 Driver가 없습니다. 집에서는 WIFI로 작업하는 것이 편하기 때문에 제일 저렴하게 USB WIFI를 구매 했으나, OS에서 인식을 못하는 불쌍사가 발생하게 되어 Kernel 에 USB Driver를 추가하는 작업을 하게 되었습니다. 인터넷에서 RTL8188EU Chipset Driver Source를 구합니다.구글링을 하면 source를 많이 찾을수 있습니다. Source 파일을 압축 해제 후 MakeFile을 수정 합니다. CONFIG_RTL8188E = y CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ARM_RPI = y..
최신 Linux Kernel Source를 Downloadsudo wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.9.9.tar.xz Linux Kernel Version에 따라 LTS 달라짐으로 longterm 을 확인 해야 함. 본인은 테스트를 위해서 최신 버전을 사용 것임. 이제 Virtual Box의 Ubuntu OS에는 최신 커널 Source가 존재 합니다. Linux Kernel Source 압축해제tar xvf linux-6.9.9.tar.xz 압축 해제 후 Linux Kernel 디렉토리 (이미 Compile 수행 후 화면 임) 이제 Kernel Source를 Cross Compile 할 준비가 되었습니다.
OS : 우분투 24 (64Bit) OrangePI의 arm cpu는 H3 로, 32Bit 임 가상머신 : Virtual Box (스토리지는 넉넉하게 30G 이상 권장) Windows Host에서 VirtualBox의 공유폴더 사용하여 Linux Guest에서 Mount 후 해당 디렉토리에서 Compile 작업 하면 않됨. 일반적인 컴파일은 문제 없으나, softlink가 Windows에서는 맞지 않아 kernel 이나 open source 설치 후 컴파일 하면 오류 발생 함. 크로스 컴파일러gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf.tar ( https://releases.linaro.org/components/toolc..
- Total
- Today
- Yesterday
- 리눅스
- 큐비보드
- 커널
- arm
- cross compile
- 고흥
- 임베이디드
- 열무
- 식물키우기
- 상추
- U-Boot
- 베란다
- 식물 키우기
- 식물
- 버추얼박스
- 크로스컴파일
- 1회용컵
- CubieBoard2
- C++
- C
- kernel
- 벌교
- VirtualBox
- 채소 키우기
- 커피컵
- Linux
- embeded
- 사무실
- 수경재배
- Android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |