리눅스에서 uboot 환경변수 읽기

삼구의신의 이미지

리눅스에서 uboot 환경변수를 어떻게하면 읽을 수 있을까요?

익명 사용자의 이미지

어떤 환경(CPU 종류, 타겟 보드 종류)에서 u-boot를 돌리느냐에 따라 방법이 달라집니다.

삼구의신의 이미지

imx28 evk 보드에서 진행하고있습니다.

furmuwon의 이미지

- uboot 환경 변수가 따로 파티션화 되어 있을텐데 kernel 에서 block device 로 접근 가능 하니 직접 파싱
(uboot env_import 함수 참고)

- 필요한 몇몇 정보만 uboot 에서 kernel parameter 에 추가하여, 부팅 이후 /proc/cmdline 에서 파싱

삼구의신의 이미지

답변 감사드립니다.
제가 이용하려는것은 제품 양산시에 uboot에서 제조번호 같은 특정 값을 입력하여 Linux로 넘겨주고 싶은것 입니다.
말씀해주신 답변중에 uboot에서 특정 변수를 kernel parameter로 넘겨주는 방식을 이용하고 싶은데..
검색을 해도 잘 모르겠네요
혹시 괜찮은 자료나 간단한 설명 부탁드려도 될까요?

furmuwon의 이미지

char *bootargs = getenv("bootargs");
char *serial = getenv("product_serial");
sprintf(tmpbuf,"%s product_serial=%s", bootargs, serial);
setenv("bootargs", tmpbuf);

이렇게 하셔서
부팅 이후에
cat /proc/cmdline
해보세요..

근데 일일이 기입하실려구요?
serial 있는 eeprom ic 를 차라리 추가하시는게.....

삼구의신의 이미지

좋은 답변 감사합니다.

tera term에서 매크로를 써서 넣을려고 하고있습니다.

말씀해주신 코드를

Uboot소스인 lib_sh/bootm.c 에 char *bootarts = getenv("bootargs");소스가 있길래
그 밑에 추가로

char *test 변수를 만들어 컴파일 후 해보았지만 /proc/cmdline에는 기존에 추가하기 전부터 있던 내용들만 있더라구요 ㅠㅠ
소스 위치가 틀린걸까요? 해야할까요?

삼구의신의 이미지

추가로 한가지 더 물어볼것이 있습니다

u-boot 프롬프트에서

setenv test 1234 후에
saveenv 하고
boot 이렇게하면, 재부팅 후에 uboot 프롬프트에서 printenv 했을 때
test=1234 가 나오면
제대로 값이 저장된거죠?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.