전 rhel 계열 리눅스를 주로 사용합니다.
그래서 비라즈베리파이 arm sbc는 거들떠보지 ‘못’하고 있습니다.
라즈베리파이는 uefi가 되니까
벤토이로 부팅, iso 파일 선택해서 디스크에 os 설치하고고부팅하면 되니까요.이오드로이드도 u boot까지는 되는듯 한데..
이건 우찌 쓸수 있는걸까요?
이건 일종의 uefi + grub인건가요?
한글 문서를 찾아봐도 개념이 잘 이해가 안갑니다.
요약하자면, 오드로이드에 우분투가 아닌 리눅스 설치하려는 것이고
이를 위해 u boot를 배워보려고 하는 것입니다.
흠… 뭔가 이해 되는것 같기도 한데..
그래서 여기서 말하는 커널과 nitram은 arm용 라눅스 커널을 넣으면 되는것인가?
그렇다고 덜컥 사볼수도 없구요..ㅠ
일단 특정 리눅스 배포판을 올려보고 싶으시면 u-boot는 아마도 수정할 필요가 없다고 생각되고요
커널이랑 특정 리눅스 사이트에 관련 내용이 있는지 한 번 확인해보시는 게 빠를 것 같습니다
(관련 일을 했었습니다만 오래 전이고 정확하지 않을 수 있습니다)
페도라 리눅스는 아래와 같은 문서를 제공하네요
https://docs.fedoraproject.org/en-US/fedora-server/installation/on-sbc/
링크 들어가보면 단어는 '부트로더'라고 하면서
설명을 들어보면 UEFI나 BIOS같이 보드 안에 들어가는 펌웨어랑 비슷하게 설명을 하더라구요.
이 링크가 더 혼란이었고..
그래서 질문드린게 BIOS + GRUB 이냐고 여쭤본거였습니다.
부트로더라고는 하지만, 펌웨어 역할도 하는 것 같더라구요.
u-boot 안에 보면 커널과 initramfs를 불러오는 커맨드가 있고,
kernel과 initramfs 파일을 안에 넣는데..
이 커널은 rhel에서 제공해주는 arm용 커널로는 안되겠죠..?
하드커널에서는 4.9가 최신이던데..
u-boot가 펌웨어... 애매하긴 한데 제가 반박할 만한 지식을 갖고 있진 않네요 부트로더는 부트로더일 뿐이라 생각하는데;
보통 u-boot는 u-boot만 부트로더 영역에 flash하고
kernel이나 rootfs(말씀하신 initramfs도 여기에 해당합니다)는 별도 영역에 flash하거나 별도 영역에 넣어놓고 사용할 거에요
u-boot 내부에 있는 건 아닙니다 제가 모르는 다른 경우가 있는지는 모르겠는데 일반적으로는 이렇습니다
사람들이 많이 쓰는 보드라면 그 보드용 config파일이 있어서 커널을 사용하는 데는 문제가 없을 수도 있습니다
이 config파일이 있는지는 찾아보셔야 할 것 같고요 이 파일이 있더라도 커널 버전에 따라 안 될수도 있을 것 같은데 이건 직접 커널 올려서 돌려보셔야 알 것 같아요
오드로이드 정도면 이런 파일이 있을 수도 있어 보이는데... 아마 없을 것 같고요(보드가 어떤 건지에 따라 다를 듯)
말씀하신 arm 커널 내부에 해당 보드용 config가 없다면 flash해서 부팅후 에러 보면서 해결해보시는 수밖에 없어 보이네요
이 에러 보면서 해결하는 과정이 꽤 힘듭니다 u-boot도 그렇고 안 해보셨으면 포기하실 확률이 높습니다
개인적으로는 이 기회에 다른 리눅스 써본다는 마인드로 지원되는 리눅스들을 올려서 써보시는 게 낫다고 생각합니다
아니면 위 과정이 필요없는 케이스가 있는데..
SBC 중 x86_64 CPU가 들어간 제품을 쓰시면 됩니다
제가 잘 몰라서 혼동을 드린것 같아요.
조금 구분해서 쓰자면, u boot가 포함된 파티션에 드라이버들과 커널, initramfs가 있고, 같은 폴더에 u boot 파일이 있었죠.
아무래도 이 파티션을 말하는게 아니라, u boot 파일만을 말하는가봅니다.
라즈베리파이 우분투의 u boot 파티션에서 kernel과 initramfs만 라즈베리파이용 rocky linux 커널, initramfs을 넣으면 당연히(?) 안됩니다.
일단 오드로이드는 u boot와 커널 파일과 빌드 방법을 제공해주기는 하는데..
여기에 리눅스 커널과 initramfs를 어떻게 엮어야 하는지 모르겠더라구요..
다른 리눅스라봐야.. 하드커널은 우분투랑 안드로이드만 제공해줍니다.ㅠㅠ
arm 우분투가 생각보다 끔찍해서.. 잘 안씁니다ㅠㅠ
확실히.. x86으로 고르면 고민이 해결되긴 하겠네요..
뭐 선택은 자유니까요..;;
라즈베리파이에 우분투가 공식 지원되는 걸로 아는데(개인 커스텀이 아닌) 이쪽을 적응하시는 게 나을 것 같습니다...
일반적으로 저런 보드에서 부팅되는 리눅스를 만들려면 생각보다 할 게 많기 때문에 다양한 리눅스 지원이 어려운 것 같습니다
일하면서 쓰게 된 어떤 SBC는 안드로이드를 올리면 모든 기능이 동작하고 리눅스를 올리면 안 되는 기능이 있는 걸 알게 된 적도 있네요...
고수분들이 많으시니 좀 더 자세한 답변은 그쪽이 더 얻기 쉽지 않을까 생각됩니다
엔지니어 현업에서 일하고 있는데, 개발자는 커널이나 하드웨어, 펌웨어는 둘째치고 운영체제 조차 이해 못하는 분이 태반이라..
개발과 엔지니어를 구분하고 생각하고 있었습니다.
저는 당연히 개발한당은 모를거라고 생각해왔었네요.
생각해보면 개발한당이 애플리케이션이 아니라 커널 개발일수도 있는데..
제 고정관념 때문에 더 적절한 곳을 두고 이런 곳에 질문을 올린것 같습니다.
감사합니다. 개발한당에도 질문을 드려봐야 할 것 같네요.ㅎㅎ
그렇게 표현 할 수 있다고 봅니다...
gbrub2 같은 친구들은 UEFI인터페이스를 통해 UEFI 드라이버를 사용하는 efi 프로그램이지만..
u-boot는 자기 스스로 하드웨어 초기화 하고 인터페이스를 재공하고 할일 끝나면 커널에 재어권 넘겨 주니까요...
U BOOT초반은 ASM으로 되어있고 STACK 초기화 이후 C로 동작합니다.