<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > /bin/sh: can‘t access tty; job control turned off

          /bin/sh: can‘t access tty; job control turned off

          作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏

          問題

          最近在做嵌入式文件系統(tǒng)時使用了如下的inittab文件
          #/etc/inittab
          ::sysinit:/etc/init.d/rcS
          ::respawn:-/bin/sh
          s3c2410_serial0::askfirst:-/bin/sh
          ::ctrlaltdel:/sbin/reboot
          ::shutdown:/bin/umount -a -r
          結(jié)果出現(xiàn)了:/bin/sh: cant access tty; job control turned off

          分析

          BusyBox通過系統(tǒng)控制臺來做些工作, 如果我們的shell啟動在 /dev/console(5,1)上, tty_io.c 函數(shù)open中noctty就被設(shè)置成1,導(dǎo)致這個問題,具體原因還不知道。總之要啟動在一個真實的串口就沒有關(guān)系。
          Job control will be turned off since your shell can not obtain a controlling terminal. This typically happens when you run your shell on /dev/console. The kernel will not provide a controlling terminal on the /dev/console device. Your should run your shell on a normal tty such as tty1 or ttyS0 and everything will work perfectly. If you REALLY want your shell to run on /dev/console, then you can hack your kernel (if you are into that sortof thing) by changing drivers/char/tty_io.c to change the lines where it sets "noctty = 1;" to instead set it to "0". I recommend you instead run your shell on a real console...

          解決方法

          可以通過BusyBox的init指定shell的設(shè)備, 注意, S3C2410上, 串口0是s3c2410_serial0。也就是說去掉::respawn:-/bin/sh就可以啦~~

          串口名稱

          串口名稱可以是s3c2410_serialx、ttySACx和ttySx等,但底層使用的是設(shè)備的主設(shè)備號和次設(shè)備號來定位具體設(shè)備的。所以不管是串口的名稱是什么
          ,只要主設(shè)備號和次設(shè)備號對了就可以。此外,通過mdev生成設(shè)備節(jié)點時,串口的名稱是s3c2410_serialx。
          S3C2410的串口驅(qū)動文件drivers/serial/s3c2410.c中,有如下數(shù)據(jù)結(jié)構(gòu):

          本文引用地址:http://www.ex-cimer.com/article/201611/319982.htm
          [plain] view plain copy
          print?
          1. staticstructuart_drivers3c24xx_uart_drv={
          2. .owner=THIS_MODULE,
          3. .dev_name="s3c2410_serial",
          4. .nr=3,
          5. .cons=S3C24XX_SERIAL_CONSOLE,
          6. .driver_name=S3C24XX_SERIAL_NAME,
          7. .major=S3C24XX_SERIAL_MAJOR,//主設(shè)備號為204
          8. .minor=S3C24XX_SERIAL_MINOR,//次設(shè)備號為64,這指第1個串口;第2個為65
          9. };

          通過這個結(jié)構(gòu)體就可以確定串口設(shè)備的主設(shè)備號和次設(shè)備號。


          關(guān)鍵詞: s3c2410inittab文

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();