Difference between revisions of "Operating System installation"

(configuring the kernel)
(configuring the kernel)
Line 83: Line 83:
  
 
* edit the uart-driver with an editor of your choice - for me it's the editor "vi" -> $ vi /usr/src/linux/drivers/amlogic/uart/meson_uart.c
 
* edit the uart-driver with an editor of your choice - for me it's the editor "vi" -> $ vi /usr/src/linux/drivers/amlogic/uart/meson_uart.c
 +
* alter there the function meson_uart_change_speed to the following:
 
<pre>
 
<pre>
 
static void meson_uart_change_speed(struct uart_port *port, unsigned long baud)
 
static void meson_uart_change_speed(struct uart_port *port, unsigned long baud)
 
{
 
{
u32 val;
+
        u32 val;
struct meson_uart_port *mup = to_meson_port(port);
+
        struct meson_uart_port *mup = to_meson_port(port);
struct platform_device *pdev = to_platform_device(port->dev);
+
        struct platform_device *pdev = to_platform_device(port->dev);
  
while (!(readl(port->membase + AML_UART_STATUS) & AML_UART_TX_EMPTY))
+
        while (!(readl(port->membase + AML_UART_STATUS) & AML_UART_TX_EMPTY))
cpu_relax();
+
                cpu_relax();
  
 
#ifdef UART_TEST_DEBUG
 
#ifdef UART_TEST_DEBUG
if (port->line != 0)
+
        if (port->line != 0)
baud = 115200;
+
                baud = 115200;
 
#endif
 
#endif
  
 
// this part is added.
 
// this part is added.
 
// trace_printk() is not neccesarry, it is just for debugging.
 
// trace_printk() is not neccesarry, it is just for debugging.
trace_printk("Your baudrate: %ld\n", baud);
+
        trace_printk("Your baudrate: %ld\n", baud);
if(baud == 38400)
+
        if(baud == 38400)
{
+
        {
baud = 31250;
+
                baud = 31250;
trace_printk("Change to %ld\n", baud);
+
                trace_printk("Change to %ld\n", baud);
}
+
        }
 
</pre>
 
</pre>
  

Revision as of 17:17, 11 June 2020

> Main Page > Piano Expander based on Pianotec and Odroid-N2


Installation of the base-system

Enable Auto-Login

Enabling the On-Screen-Keyboard

  • In applications, where you don't want to use an external keyboard you have the possibility to use an "On-Screen-Keyboard" which could be controlled via the Touch-Screen.

Switch-On the On-Screen-Keyboard on Ubuntu-Mate

  • On Ubuntu-Mate the On-Screen-Keyboard is already installed. You can find it in the ‘Universal Access’ menu. In this menu you find the application "Onboard" -> a click on this menu-point activates the On-Screen-Keyboard.

Adding support for ARM 32-bit code execution

odroid64:$ sudo dpkg --add-architecture armhf

odroid64:$ sudo apt-get update

apt install libc6:armhf

apt install libx11-6:armhf

apt install libfreetype6:armhf

apt install libxext6:armhf

apt install libasound2:armhf

Changing FDT (Flattened Device Tree) to support second UART-Interface for MIDI

Enabling 31250 UART-Baud-Rate for Midi-Usage

  • The baud-rate 31250 which is used for MIDI-trafic is normally NOT supported on standard UART drivers.
  • We have to tweek the UART-Kernel-driver for supporting this baud rate. This sounds like a complicated action, but it isn't really complicated - take a look on this article in the Odroid-Magazine -> ODROID-N2 UART Custom Baud Rate for MIDI

Cross-Compiling or compiling the Kernel natively (on the Odroid-N2 itself)

  • You have the possibility to compile the Kernel external (e.g. on your Desktop-PC/Laptop) where you have to install the Cross-Compiler-Toolchain and the other build utilities) or directly on the Odroid itself.
  • I am a fan of doing it directly on the Odroid-N2 itself. Therefore I describe this procedure first.

getting the Kernel-Sources

  • changing the user to be "root"
$ sudo su
--> enter your root password

Attention: Be careful - the root-user can do really everything on the system - also damaging the running OS

  • going to the directory where you want to build the kernel
$ cd /usr/src/
  • install the source code version control system software "git":
$ apt install git
  • going into the kernel-root-path
$ cd /usr/src/linux/
  • getting the kernel-sources (cloning) from github:
$ git clone --depth 1 https://github.com/hardkernel/linux.git -b odroidg12-4.9.y

configuring the kernel

  • configuring the base configuration of the kernel
$ make odroidg12_defconfig
  • edit the uart-driver with an editor of your choice - for me it's the editor "vi" -> $ vi /usr/src/linux/drivers/amlogic/uart/meson_uart.c
  • alter there the function meson_uart_change_speed to the following:
static void meson_uart_change_speed(struct uart_port *port, unsigned long baud)
{
        u32 val;
        struct meson_uart_port *mup = to_meson_port(port);
        struct platform_device *pdev = to_platform_device(port->dev);

        while (!(readl(port->membase + AML_UART_STATUS) & AML_UART_TX_EMPTY))
                cpu_relax();

#ifdef UART_TEST_DEBUG
        if (port->line != 0)
                baud = 115200;
#endif

// this part is added.
// trace_printk() is not neccesarry, it is just for debugging.
        trace_printk("Your baudrate: %ld\n", baud);
        if(baud == 38400)
        {
                baud = 31250;
                trace_printk("Change to %ld\n", baud);
        }



> Main Page > Piano Expander based on Pianotec and Odroid-N2