2013-10-30 29 views
1

我在工作的项目中使用在Android上运行的Beaglebone黑色。我需要使用UART1。据我所知,我必须配置UART1的模式。它必须是MODE0。在Beaglebone中配置UART1的根权限

回声20>/SYS /内核/调试/ omap_mux/uart1_rxd

使用echo 0>/SYS /内核/调试/ omap_mux/uart1_txd

一切正常:我可以用这些命令通过ADB做这样很好。但真正的问题是,我必须在应用程序内部进行这种配置,我正在编写代码。但是我没有执行这些shell命令的权限,因为我没有root权限。所以:

1)我如何根据我的beaglebone黑色来执行这些shell命令?

2)或者有没有办法给这些文件写入权限?我可以通过adb执行chmod 777/sys/kernel/debug/omap_mux/uart1_rxd,并在我的应用程序中拥有写权限。但当然这不是一个解决方案,因为当beaglebone重新启动时,权限会丢失。

只需要使用UART1(或任何其他UART)进行串行通信。但是所有的shell命令都必须在我的应用程序中执行。我怎样才能做到这一点?

回答

0

我找到了解决方案。我将它发布给任何可能需要它的人。

1)安装SD卡,其具有的Android图像,到PC

2)打开控制台和安装根文件系统分区

3)打开init.rc纳米命令

nano init.rc 

4)有shell命令,它们在boot部分运行。将以下shell命令添加到您选择的某处:

chmod 0666 /sys/kernel/debug/omap_mux/uart1_rxd 
write 20 /sys/kernel/debug/omap_mux/uart1_rxd 20 
chmod 0666 /sys/kernel/debug/omap_mux/uart1_txd 
write 0 /sys/kernel/debug/omap_mux/uart1_txd 0 

5)保存文件并用SD卡启动Beaglebone。

现在您已经可以读/写/ sys/kernel/debug/omap_mux/uart1_txd和/ sys/kernel/debug/omap_mux/uart1_rxd了。他们的模式设置为MODE0。