아래와 같은 환경에서


  - 부트로더 : u-boot

  - 커널 : Linux

  - root filesystem : nfs

  - 보드 IP : 192.168.1.100

  - Server IP : 192.168.1.10

  - nfs dir : /tftpboot/rootfs


 작업할 경우 "RPC : sendmsg returned error 101" 라는 메시지와 함께 root filesystem 마운트에 실패하는 경우가 있다. 


 이럴경우 kernel cmdline 으로 전달되는 bootargs 변수에 "nolock" 옵션을 붙여 주면 해결된다. 



 Marvell >> setenv bootargs 'console=ttyS0,115200 root=/dev/nfs init=/linuxrc rw nfsroot=192.168.1.10:/tftpboot/rootfs/,nolock ip=192.168.1.100'

Marvell >> tftpboot 0x400000 uImage

Marvell >> bootm 0x400000


 위의 예제처럼 nolock 옵션을 붙여주면 kernel/fs/nfs/nfsroot.c::static int __init root_nfs_parse() 에서 옵션을 인식해서 nolock 모드로 마운트를 할 수 있게 해준다. 



'development' 카테고리의 다른 글

[program] unused variable 문제  (0) 2013.08.02
[program] 32bit CPU 에서 64bit 변수 사용 문제  (0) 2013.07.25
[Kernel] Kbuild system  (0) 2013.07.12
[kernel] __read_mostly?????  (0) 2013.05.08
[etc] Reglar expressions  (0) 2012.09.19
블로그 이미지

김유석0

,

[Kernel] Kbuild system

development 2013. 7. 12. 19:54

Kbuild System



About Kbuild

 프로젝트 진행시 makefile 을 사용하면 빌드 과정을 단순화 시킬 수 있습니다. 하지만, 프로젝트의 규모가 커지면 makefile 도 그만큼 복잡해 지며 복잡해진 만큼 관리도 어려워 집니다.  

 Kbuild 는 이런 단점을 보안하기 위해 만든 makefile framework 이며, 규칙에 따라 간단하게 작성한 makefile 만으로도 복잡한 일을 수행할 수 있게 도와 줍니다. 


Kbuild 의 목적

  • 여러 플랫폼을 같은 방법으로 사용할 수 있게 할것.
  • 유연성있게 사용할 수 있어야 함. 
  • makefile 을 쉽게 만들수 있어야 하고 관리도 편해야 한다. 

 

Kbuild 가 지원하지 않는 기능

 Kbuild 는 빌드에 필요한 라이브러리나 헤더 등을 미리 확인해 주는 기능은 지원하지 않습니다. 

 이런 기능은 autoconfig tool(ex. configure..) 을 사용해야 합니다. 

 그렇다고 autoconfig tool 을 Kbuild 에서 사용할 수 없다는 건 아니므로 필요시 Kbuild 와 조합해서 사용하시면 됩니다. 


Kbuild 공식 사이트

 Kbuild 의 공식 사이트 주소는 아래와 같습니다.

 Kbuild 의 최신 버전이나 각종 정보를 얻을 수 있습니다. 


 http://svn.netlabs.org/kbuild


 최신버전 다운로드는 아래 주소를 클릭하시면 됩니다. (2013년 7월 12일 기준)

 

 http://svn.netlabs.org/kbuild/wiki/Download





Reference

http://svn.netlabs.org/kbuild/


블로그 이미지

김유석0

,

커널 코드를 살펴보다보면 __read_mostly 라는 매크로를 볼 수 있게 된다. 

자주 읽지만, 쓰는 것은 드문 데이터들이 있을 수 있다. 이런 데이터들을 캐쉬에 올려 놓으면 read 할때 유리하게 된다. 

__read_mostly 라는 매크로를 붙여주면 그 데이터는 캐쉬에 올라가게 된다. 


SMP 환경에서 이런 특성(자주 읽지만, 쓰는 것은 드문)의 데이터들은 캐쉬에 올려놓고 사용하는 것이 유리하다고 하니 필요에 따라서 이 매크로를 사용하도록 하자. 



'development' 카테고리의 다른 글

[u-boot] RPC : sendmsg returned error 101  (0) 2013.07.19
[Kernel] Kbuild system  (0) 2013.07.12
[etc] Reglar expressions  (0) 2012.09.19
[kernel] initrd/initramfs 편집하기.  (0) 2012.05.29
[u-boot] u-boot 사용법  (0) 2012.03.08
블로그 이미지

김유석0

,