E9卡片电脑 ubuntu系统的常见问题
此贴为天嵌科技E9卡片电脑 ubuntu系统的FAQ,会及时更新遇到的各种问题的解决办法,旨在帮助更多的用户在遇到相同问题时,能得到快速的解决。也借此希望各位在遇到问题时能先到此处搜索,也许你今天的难题,就是前人已经解决的问题。也希望大家能在此踊跃发言,相互交流各自的经验。
1、Ubuntu 的用户名与密码是什么?
用户名:linaro,密码:linaro
2、Ubuntu 是否支持触摸功能?
Ubuntu 系统本身不支持触摸功能。
3、编译内核源码出现“"mkimage" co
mmand not found - U-Boot images will not be built”,log如下:
Kernel: arch/arm/boot/Image is ready
SHIPPED arch/arm/boot/compressed/lib1funcs.S
AS arch/arm/boot/compressed/lib1funcs.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
"mkimage" command not found - U-Boot images will not be built
make[2]: *** [arch/arm/boot/uImage] 错误 1
make[1]: *** [uImage] 错误 2
解决办法:
直接在线安装命令如下:sudo apt-get install uboot-mkimage后编译,皆可以编译通过。
4、买的USB摄像头不能用?
解决方法:建议购买“视视看”的“蜘蛛网”与“蓝韵”。
5、为什么E9下载电源灯锁不住 ?
解决方法:按照附件图片所示,短接J5之后不许再按电源键,跳线帽为下载模式,既可按照手册烧写步骤进行烧写。
6、ubuntu系统录音与喇叭功能用不了?
解决方法:天嵌科技官方论坛已经发布解决方案。
7、GPIO功能的配置方法?
解决方法:
假如我们要使用扩展口的第11脚EIM_D18。
先在arch/arm/plat-mxc/include/mach/iomux-mx6q.h中找有EIM_18,
可以找到MX6Q_PAD_EIM_D18__xxx。因为要作为gpio,所以使用MX6Q_PAD_EIM_D18__GPIO_3_18这个配置,
将它加入board-mx6q_sabresd.h中。
static iomux_v3_cfg_t mx6q_sabresd_pads[] = {
....
MX6Q_PAD_EIM_D18__GPIO_3_18
....
}
8、内核源码找不到配置单imx6_config ?
解决方法:下载附件imx6_config.zip,解压后拷贝imx6_config到源码根目录,按照手册配置编译。
然后在board-mx6q_sabresd.c中添加
#define SABRESD_GPIO_CTRL IMX_GPIO_NR(3, 18)
static struct gpio_led imx6q_gpio_leds[] =
{
GPIO_LED(SABRESD_CHARGE_NOW, "chg_now_led", 0, 1,"charger-charging"),
GPIO_LED(SABRESD_GPIO_CTRL, "gpio_xxx", 0, 1,"xxx"),
};
重新编译内核,烧写,只写0或1到/
echo 0/1 > sys/class/leds/gpio_xxx/brightness
这个节点就能控制高低了
如果无法控制,软件上一般脚的是配置问题,可以在mx6q_sabresd_pads找PAD_EIM_D18,看在MX6Q_PAD_EIM_D18__GPIO_3_18的后面有没有被其它脚给重新初始化成了别的功能。
9、ubuntu无法关机?
解决办法:
内核文件:arch/arm/mach-mx6/board-mx6q_sabresd.c
static void mx6q_board_powerctrl(int onoff)
{
int rtn;
rtn = gpio_request(BOARD_POWER_CTRL, "mx6_power_ctrl");
if (rtn < 0)
{
printk("can't get gpio for power ctrl\n");
return ;
}
if (onoff != 0)
gpio_direction_output(BOARD_POWER_CTRL, 1);
else
gpio_direction_output(BOARD_POWER_CTRL, 0);
gpio_free(BOARD_POWER_CTRL);
}
static void mx6_poweroff(void)
{
mx6q_board_powerctrl(0);
}
static void __init mx6_sabresd_board_init(void)
{
.....
if (!uart5_enabled)
imx6q_add_pcie(&mx6_sabresd_pcie_data);
pm_power_off = mx6_poweroff; //在这个函数里加上这句
imx6_add_armpmu();
imx6q_add_perfmon(0);
imx6q_add_perfmon(1);
imx6q_add_perfmon(2);
....
}