COM iMX25 Linux: Difference between revisions

From Wiki-DB
Jump to navigationJump to search
Christoph (talk | contribs)
Christoph (talk | contribs)
Line 166: Line 166:
:For the Qt-Browser change <code>demoname</code> to <code>browser</code>
:For the Qt-Browser change <code>demoname</code> to <code>browser</code>
=== Login/Shutdown system ===
=== Login/Shutdown system ===
Login:
:{| class="wikitable" style="width: 120px"
  Name:     root
||Username: ||root
  password: foo
|-
   
||Password: ||foo
Shutdown:
  |}
  $ shutdown -h now
:{| class="wikitable"
|<code>''shutdown -h now''</code>
|}
 
=== Initialize and test CAN ===
=== Initialize and test CAN ===
:Initialize:
:Initialize:

Revision as of 16:42, 11 July 2012


FAQ


Linux virtual machine for development

Get the Virtual machine

Version: File: Changes:
v1.3 Debian Squeeze v1.3.zipx - Mono 2.10<br\>- mtd-utils<br\>- System updates
v1.2 Debian Squeeze v1.2.zipx - Emdebian Toolchain gcc 4.3 / g++ 4.3 (arm-linux-gnueabi-...)<br\>- TortoiseHg + TortoiseHg for Nautilus<br\>- Add Plugin "REST Client" in Iceweasel
v1.1 Debian Squeeze v1.1.zipx - Update Eclipse Indigo with CDT 8.0<br\>- Add demo project "crosshelloworld"
v1.0 Debian Squeeze.zipx - First Release<br\>- CodeSourcery Toolchain (arm-none-linux-gnueabi-...)<br\>- Eclipse Helios & Indigo

Setting up a Eclipse Cross Executable Project:

  • Use Eclipse Indigo (version 3.7.1) for your project.
  • Create a new C++ Project and choose as Executable Project type Cross-Compile Project and as Toolchains Cross GCC
  • Click the Button "Next" and specify under Tool command path the Toolchain path. For Codesourcery it is the folder "/opt/CodeSourcery/Sourcery_G++_Lite/bin". Under Prefix type "arm-none-linux-gnueabi-".


Building your own Kernel

Sources for the iMX25 Kernel:

How to build a kernel:

1. Start the Console on Linux
2. Copy the above mentioned source files into our work_path
3. cd work_path
4. tar xfjv linux-2.6.38.tar.bz2
5. cd work_path/linux-2.6.38
6. patch -p1 <linux-2.6.38_DHCOM_iMX25.patch
7. cp .config work_path/linux-2.6.38
8. ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage
The uImage file will you find in ../build-linux/arch/arm/boot


Update the kernel with U-Boot

The linux kernel will be updated by the U-Boot flash update.
1. Copy the uImage and uImage.env file onto a microSD card with a FAT file system (you can use the 1st partition on the microSD card)
2. Insert the microSD card and start the system
3. Go to the U-Boot console by pressing DEL on a RS232 terminal (during startup)
4. update linux


How to use/update our root file system

Login data for the Debian system


1. Format a microSD card like following (in linux e.g. you can use palimpsest) with Master Boot Record partition scheme
P1 FAT (Primary partition: 100MB)
P2 ext3 (Primary partition: Residual space)
2. Untar the root file system to the ext3 partition of the microSD card (Don't copy the tar archive directly to the microSD card)
Start the Console on Linux
su
chmod 755 /path/of/the/microSD_card
cd /path/of/the/microSD_card
tar xfjv path/to/RootFS/Name_of_RootFS_file.tar.bz2


How to control the display brightness

echo <value> >/sys/devices/platform/imx-fb.0/backlight/imxfb-bl/brightness
value range: 0..255


How to control the GPIOs

DHCOM Name: Port: Pin: Linux GPIO #
GPIO A 2 12 44
GPIO B 3 21 85
GPIO C 2 4 36
GPIO D 2 5 37
GPIO E 2 6 38
GPIO F 2 7 39
GPIO G 2 8 40
GPIO H 2 9 41
GPIO K 2 10 42
Export
echo <GPIO#> >/sys/class/gpio/export
Set direction
echo in >/sys/class/gpio/gpioXX/direction
echo out >/sys/class/gpio/gpioXX/direction
Set value
echo 0 >/sys/class/gpio/gpioXX/value
echo 1 >/sys/class/gpio/gpioXX/value
Get value
cat /sys/class/gpio/gpioXX/value
unexport
echo <GPIO#> >/sys/class/gpio/unexport


Debian system

Calibrating the touchscreen

TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate

Running example Qt Apps

QWS_MOUSE_PROTO=Tslib:/dev/input/event0 /usr/qt/demos/demoname/demoname -qws
For the Qt-Browser change demoname to browser

Login/Shutdown system

Username: root
Password: foo
shutdown -h now

Initialize and test CAN

Initialize:
ip link set can0 up type can bitrate 500000
Send test message via cansend (part of can-utils):
cansend can0 100#11.2233.44556677.88


Busybox system

Calibrating the touchscreen

TSLIB_TSDEVICE=/dev/event0 ts_calibrate

Running example Qt Apps

QWS_MOUSE_PROTO=Tslib:/dev/event0 /usr/qt/demos/demoname/demoname -qws
For the Qt-Browser change demoname to browser

Login/Shutdown system

Login:
  Name:     root
  password: n/a

Shutdown:
  $ halt