문제: 부트로더 소스 코드에서 autoboot_timeout 매개변수를 줄입니다.
강화 보드 ---> phyBoard-Segin i.MX6UL/ULL
현재 부팅 시간은 약 14초이며 자동 시작 시간 초과로 인해 3초가 추가됩니다. 제한 시간을 1로 줄여야 합니다.
방법 1:
@부트로더:
CD /env/nv
엘에스
barebox@Phytec phyCORE-i.MX6 Ultra Lite SOM(NAND 포함): /env/nv ls
. ..allow_color
autoboot_timeout
bootchooser.state_prefix bootchooser.system0.boot
bootchooser.system1.boot bootchooser.targets
dev.eth0.ipaddr dev.eth0.linux.devname
dev.eth0.mode dev.eth0.netmask
dev.eth0.serverip dhcp.vendor_id
linux.bootargs.base linux.bootargs.rootfs
net.gateway 사용자
barebox@Phytec phyCORE-i.MX6 Ultra Lite SOM(NAND 포함): /env/nv
autoboot_timeout을 1로 수정했습니다.
환경을 저장합니다.
이 방법은 효과가 있으며 확인했습니다. 이제 베어메탈 소스 코드에서 동일한 변경을 수행하고 이를 반영하고 싶습니다. [프로젝트 요구 사항에 따라 동일한 변경은 여기가 아니라 소스 코드에서 이루어져야 합니다.]
여기에서 변경한 모든 내용을 되돌립니다.
방법 2:
bitbake barebox -c devshell
CD defaultenv/defaultenv-2-base/bin/
초기화 파일을 편집하고 자동 시작 시간 초과 매개변수를 1로 변경했습니다.
단편:
root@hp15t:~/yocto/build/tmp/work/phyboard_segin_imx6ul_2-phytec-linux-gnueabi/barebox/2019.01.0-phy7-r7.0/git/defaultenv/defaultenv-2-base/bin# cat init #! /bin/sh
내보내기 경로=/env/bin
전역 호스트 이름 전역 사용자 전역 autoboot_timeout 전역 autoboot_abort_key 전역 boot.default 전역 linux.bootargs.base 전역 linux.bootargs.console #linux.bootargs.dyn.* 시작이 시작되면 지워집니다. 전역 linux.bootargs.dyn.ip 전역 linux. bootargs.dyn.root 전역 editcmd
[ -z "${global.hostname}" ] && global.hostname=generic [ -z "${global.user}" ] && global.user=none Magicvar -a global.user "사용자 이름(네트워크 파일 이름에서) ) " [ -z "${global.autoboot_timeout}" ] &&에 사용됨global.autoboot_timeout=1 Magicvar -a global.autoboot_timeout "자동 시작 전 시간 초과(초)" [ -z "${global.autoboot_abort_key}" ] && global.autoboot_abort_key=any Magicvar -a global.autoboot_abort_key "자동 시작을 중단하는 키(유효한 옵션: any , ctrl-c)" [ -z "${global.boot.default}" ] && global.boot.default=net [ -z "${global.editcmd}" ] && global.editcmd=sedit
[ -e /env/config-board ] && /env/config-board /env/config
변경 사항을 저장한 후(변경한 매개변수 강조 표시) 다음 명령을 실행합니다.
bitbake barebox -c 컴파일 --force
bitbake barebox -c 배포
bitbake <이미지 이름>
확인해보니 변경사항이 반영되지 않았습니다.
원하는 시나리오 - 시간 제한이 1이어야 하고 보드가 부팅되어야 합니다.
장면을 얻었습니다. 여전히 3초가 걸리고 시작됩니다.
답변1
많은 고민과 검색 끝에 이것을 발견했습니다. 변경 사항을 반영하기 위해 부트로더에서 환경을 업데이트하는 것을 잊었습니다.
defaultenv/defaultenv-2-base/bin/init 경로의 파일을 위와 같이 변경합니다.
변경 사항을 저장하다.
자식 상태
git add <경로의 각 파일 이름>
git commit -m "[커밋에 대한 올바른 메시지 삽입]"
git show 또는 git status [변경 사항이 있는지 확인하기 위한 것입니다.]
출구
bitbake barebox -c compile --force && bitbake barebox && bitbake barebox -c 전개
bitbake <이미지 이름>
SD 카드 이미지를 새로 고칩니다.
yocto에서 다음 경로를 따르세요.
CD /배포/이미지/[버전]/
cp barebox.bin /home/<이름>/boot
@부트로더:
barebox_update -t 및 barebox.bin
/dev/nand0.barebox-environment.bb를 닦아냅니다. [기존 환경을 지워야 합니다.]
환경을 저장하다
초기화
이제 변경 사항이 반영됩니다.
부트로더에서 교차 확인할 수 있습니다.
CD /환경/빈/
cat init [autoboot_timeout을 확인하세요. 기본값은 3, 1로 변경되었습니다.]