am3358 임베디드 리눅스 보드사용중에 기가랜으로 인터넷이 연결되지 않고 100m으로만 되는 문제가있어
계속 찾아보던중
이런 내용을 발견하였고 내부클럭 지연모드를 활성화하는 방법에 대해 찾아보니
https://ethernetfmc.com/rgmii-interface-timing-considerations/ 이런 링크를 찾을수 있었다.
디바이스 트리에 내용을 수정하여 간단히 변경할수 있는것 같았는데 애초에 디바이스 트리가 뭔지 모르는 상태여서 한참동안 찾아보았다.
리눅스 부팅을 위해서 디바이스 정보들을 바이너리 형태로 저장해둔 것이라고 하는데 수정은 어떻게 해야할까?
우선 dtc (device tree compiler)를 설치해야한다.
sudo apt install device-tree-compiler
컴파일러가 설치되고나면 dtb파일이 있는 디렉토리로 이동한다. 작성자는 beaglebone-black을 사용
cd KERNEL/arch/arm/boot/dts/
해당 디렉토리로 이동한뒤에 바이너리 상태로 있는 am335x-boneblack.dtb파일을 dts파일로 변환해준다.
dtc -I dtb -O dts -o am335x-boneblack.dts am335x-boneblack.dtb
# <output file> <input file>
이제 dts파일을 수정해준다.
phy-mode 를 rgmii-id로 바꿔 내부지연모드로 변경하였다.
그럼이제 dtb파일로 다시 컴파일 해준다.
dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts
이렇게 만든 디바이스 트리를 sd카드의 boot부분에 복사해주면 된다.
이걸 적용했지만 여전히 기가랜안된다. 하하
******************************************
IDE=<your-device-name> //am335x-boneblack
SRC=$IDE.dts
TMP=$IDE.tmp.dts
DST=$IDE.dtb
cpp -nostdinc -I include -undef -x assembler-with-cpp $SRC > $TMP
dtc -O dtb -b 0 -o $DST $TMP rm $TMP
'[리눅스]' 카테고리의 다른 글
[리눅스] 매핑된 gpio의 상태 할당시 주어진 이름 목록 확인 (0) | 2019.07.15 |
---|---|
u-boot에서 실행될때마다 적용할 명령 등록 (0) | 2019.06.26 |
[리눅스] 특정 프로그램 종료시 자동재실행 쉘스크립트 (2) | 2019.05.20 |
[리눅스] 부팅후 자동실행 등록하기 rc.local (0) | 2019.05.18 |
[리눅스] MAKE파일 만들기 (1) | 2016.11.02 |