Changes

Jump to: navigation, search

XUELK-AN-002: Running Debian distribution

16,672 bytes added, 16:36, 12 February 2021
no edit summary
{{InfoBoxTop}}
{{AppliesToSBCLynx}}
{{AppliesToDWM AN}}
{{AppliesTo AXEL ULite AN}}
{{AppliesTo SBC Lynx AN}}
{{InfoBoxBottom}}
{{WarningMessage|text=This application note was validated against specific versions of the kit only. It may not work with other versions. Supported versions are listed in the ''History'' section.}}
{{ImportantMessage|text=Regarding the Molex antenna used in this AN. It is valid only for '''No EU''' countries - see [https://www.lairdconnect.com/documentation/regulatory-information-tiwi-ble link]}}
== History ==
{| class="wikitable" border="1"
!Version
!XUELK version
!Date
!Notes
|-
|1.0.0
|1.1.3
|February 2017
|First public release
|-
|2.0.0
|March 1.1.3|April 2017|TBD*Added several packages to the root file system*Removed <code>busybox</code>*Added notes about physical interfaces|-|2.1.0|1.1.3|April 2017|*Added section ''Using the raw image''*Added notes about <code>ssh</code> server configuration*Added notes about <code>MySQL</code> server installation and configuration
|-
|}
 
==Introduction==
Several "distributions" are available for embedded Linux devices. [https://www.yoctoproject.org Yocto] and [https://buildroot.org Buildroot] are just two examples of the most common. Nevertheless, for some applications the use of a desktop/server distribution might be preferable. Since they are not conceived for embedded platforms, these distributions have to be carefully tailored, in order to match hardware resources.[1]
This application note shows how to run one of such distributions - Debian Jessie - on SBC Lynx. '''It is assumed that the reader if already familiar with''' [[AXEL_ULite_and_SBC_Lynx_Embedded_Linux_Kit_(XUELK)|'''AXEL ULite and SBC Lynx Embedded Linux Kit (XUELK)''']], as it is the basis of this work.
The procedure was tested on an SBC Lynx with ConfigID=0x0000000C (PCB revision CS214515A), starting from XUELK 1.1.3 binaries.
 
*adding a modified version of the Linux kernel image [1]
*replacing the default Yocto root file system delivered along with the XUELK, with the Debian one. [2]
It is assumed that the microSD card is connected to the host machine. As such, the two partitions are mounted as <code>/media/BOOT</code> and <code>/media/ROOTFS</code>. The kernel image and the compressed archive containing the root file system are available for download at the following box shows how URLs respectively:* https://mirror.dave.eu/lynx/debian/20170403/xuelk-1.1.3_uImage.debian* https://mirror.dave.eu/lynx/debian/20170403/20170403-sbclynx-debian-8.tgz To copy the kernel image to perform such operations once the microSD card (mapped as , issue the following command:<pre class="board-terminal">cp -v xuelk-1.1.3_uImage.debian /media/BOOT/</pre>Delete all the existing files in the <code>/devmedia/TBDROOTFS</code> partition:<pre class="board-terminal">sudo rm -rf /media/ROOTFS/*sudo tar xvzf 20170403-sbclynx-debian-8.tgz -C /media/ROOTFS/ </pre>Decompress the Debian root file system in the example) has been connected to a Linux host.same partition:
<pre class="board-terminal">
TBDsudo tar xvzf 20170403-sbclynx-debian-8.tgz -C /media/ROOTFS/
</pre>
You can now remove Remove the card from the host, and plug it into the slot of SBC Lynx.
After powering it up, stop the automatic boot process, and edit the <code>mmcboot</code> variable as follows:
[1] The only difference with respect to the XUELK kernel image is related to the WiFi driver. To make it work with the Debian root file system, it has to be built as a loadable module instead of as a statically linked driver.
[2] The provided root file system is derived from this one: https://rcn-ee.com/rootfs/eewiki/barefs/debian-8.7-bare-armhf-2017-01-14.tar.xz.
===Using the raw image===
For convenience, the raw image of the microSD card is provided as well. This image is the result of the procedure described in the previous section, applied to a 16 GB card. The image can be downloaded [https://mirror.dave.eu/lynx/debian/20170403/20170403-sbclynx-debian-8-usd.zip here].
 
Once decompressed, it can be written directly to the card.
 
On a Linux host issue the following command (assuming the card is associated to the <code>/dec/sdc</code> device file):
<pre class="board-terminal">
sudo dd if=/path/to/20170403-sbclynx-debian-8-usd.img of=/dev/sdc oflag=sync
</pre>
 
In case your host is a Windows machine, you can use the well-known ''Win32 Disk Imager'' tool. It can be downloaded [https://sourceforge.net/projects/win32diskimager/ here].
 
 
[[File:Sbclynx-debian-disk-imager-win.png|thumb|center|600px|''Win32 Disk Imager'' tool]]
 
 
After installing it, open it and (see also the image above):
#select the raw image file
#select the drive letter of the microSD card
#press ''Write''.
==Adding packages==
Of course, one of the greatest - if not ''the'' greatest - pros of having a desktop distribution, is the availability of a huge archive of pre-built packages. They can be installed very easily with tools such as [https://wiki.debian.org/Apt <code>apt</code>] and [https://packaging.python.org <code>pip</code>].
Before installing packages, the network interface has to be configured, as it is disabled by default. To configure it with a static IP address (192.168.0.80 in the example), <code>nano</code> text editor can be used:
[ Wrote 9 lines ]
</pre>
Please note the that these changes will take effect after rebooting the machine. 
DNS server has also to be enabled, in order to resolve URLs. Again, <code>nano</code> comes to help:
</pre>
 
You can finally install the desired packages, as shown in the following examples:
ii zlib1g:armhf 1:1.2.8.dfsg armhf compression library - runtime
ii zlib1g-dev:arm 1:1.2.8.dfsg armhf compression library - development
</pre>
====pip packages====
Please click on the ''Expand'' button to see the list of the installed pip packages.
<pre class="board-terminal mw-collapsible mw-collapsed">
root@arm:~# pip freeze
Automat==0.5.0
Jinja2==2.9.5
MarkupSafe==1.0
PyNaCl==1.0.1
PyQRCode==1.2.1
PyTrie==0.3
PyYAML==3.12
Pygments==2.2.0
Pynetinfo==0.2.3
Twisted==17.1.0
appdirs==1.4.3
argh==0.26.2
argparse==1.2.1
attrs==16.3.0
autobahn==0.17.2
bitstring==3.1.5
bluepy==1.0.5
cbor==1.0.0
cffi==1.9.1
chardet==2.3.0
click==6.7
colorama==0.3.2
constantly==15.1.0
crossbar==17.2.1
cryptography==1.7.2
enum34==1.1.6
html5lib==0.999
idna==2.5
incremental==16.10.1
ipaddress==1.0.18
lmdb==0.92
mistune==0.7.3
ndg-httpsclient==0.3.2
netaddr==0.7.19
packaging==16.8
pathtools==0.1.2
ply==3.4
psutil==5.2.0
py-ubjson==0.8.5
pyOpenSSL==16.2.0
pyasn1==0.2.3
pyasn1-modules==0.0.8
pycparser==2.17
pyparsing==2.1.10
requests==2.4.3
sdnotify==0.3.1
service-identity==16.0.0
setproctitle==1.1.10
shutilwhich==1.1.0
six==1.10.0
sortedcontainers==1.5.7
suds==0.4.1
treq==16.12.0
txaio==2.6.1
u-msgpack-python==2.3.0
urllib3==1.9.1
virtualenv==1.7.1.2
watchdog==0.8.3
wheel==0.24.0
wsgiref==0.1.2
zope.interface==4.3.3
</pre>
==Notes about physical interfaces==In principle, the physical interfaces can be accessed the same way as described for the [[Physical_devices_mapping_(XUELK)|Yocto root file system]]. However, some of them require a different approach. For more details, please refer to the following sections.===Ethernet===Please refer to See [[#Adding packages|this section]]. ===Bluetooth and WiFi (client mode)===The procedure here described can be used to connect to an Access Point, using root file system contains the WPA2/PSK security protocol. As the WiFi driver is not statically linked to the kernel image, it is necessary to load the module first:<pre class="boardsame calibration file indicated [[XUELK-AN-terminal">root@arm001:~# modprobe wl12xx</pre>  Then, bring the interface up:<pre class="board_Using_WiFi-terminal">root@arm:~Bluetooth_combo_plugin_with_SBC_Lynx# iw devphy#0 Interface wlan0 ifindex 4 wdev 0x1 addr 88:33:14:5e:30:61 type managedroot@arm:~# ip link show wlan04: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 88:33:14:5e:30:61 brd ff:ff:ff:ff:ff:ffroot@arm:~# ip link set wlan0 up[ 276.076847Calibration|here] wlcore: firmware booted (Rev 6.3.10.0.133)[ 276.097912] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not readyroot@arm:~# ip link show wlan04: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq qlen 1000 link/ether 88:33:14:5e:30:61 brd ff:ff:ff:ff:ff:ffroot@arm:~# iw wlan0 linkNot connected.</pre> ====Bluetooth====The connection will following script can be established with run to enable the SSID named <code>SSID_ZyXEL_WPA2</code>Bluetooth controller:<pre class="board-terminal">root@arm:~# iw wlan0 scan./test/dwm_bt_init..BSS fe:f0:28:cc:03:90(on wlan0)sh TSF: 42646261 usec (0d, 00:00:42)Found a Texas Instruments' chip! freq: 2437 beacon interval: 100 TUs capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431) signalFirmware file : /lib/firmware/ti-53.00 dBm last seen: 0 ms ago SSID: SSID_ZyXEL_WPA2 Supported rates: 1connectivity/TIInit_7.0* 2.0* 5.5* 11.0* 6.0 915.0 12.0 18.0bts DS Parameter set: channel 6 RSN: * Version: Loaded BTS script version 1 * Group cipher: TKIP * Pairwise ciphers: TKIP * Authentication suites: PSK * Capabilitiestexas: changing baud rate to 3000000, flow control to 1-PTKSA-RC 1-GTKSA-RC (0x0000) ERP: <no flags>Device setup complete Extended supported ratesDevices: 24.0 36.0 48.0 54.0 WMMhci0 88: * Parameter version 1 * BE33: CW 15-1023, AIFSN 3 * BK14: CW 15-1023, AIFSN 7 * VI5E: CW 7-15, AIFSN 2, TXOP 3008 usec * VO30: CW 3-7, AIFSN 2, TXOP 1504 usec...60</pre>  Add the passphrase key to Once the <code>wpa_supplicanthci</code> configuration file and make it readable by interface is enabled, <code>roothcitool</code> onlyor other tools can be used to access it:<pre class="board-terminal">root@arm:~# wpa_passphrase SSID_ZyXEL_WPA2 >> /etc/wpa_supplicanthcitool scanScanning .confZyXEL-WPA2-PSKroot@arm:~# chmod 0600 /etc/wpa_supplicant.confroot@arm:~# cat /etc/wpa_supplicant.conf# reading passphrase from stdinnetwork={ ssid="SSID_ZyXEL_WPA2" #psk="ZyXEL-WPA2-PSK" psk=ec41b79ebdf10022908aa10189b0341f095fd62eeb719a67c5c920e0cde28564}</pre>  Start <code>wpa_supplicant</code>yy:<pre class="board-terminal">root@arm:~# wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.confSuccessfully initialized wpa_supplicantrfkill: Cannot open RFKILL control deviceioctl[SIOCSIWENCODEEXT]: Invalid argumentioctl[SIOCSIWENCODEEXT]yy: Invalid argument[ 3527.234018] wlan0: authenticate with fe:f0yy:28yy:ccyy:03:90[ 3527.269591] wlan0: send auth to fe:f0:28:cc:03:90 (try 1/3)[ 3527.277879] wlan0: authenticated[ 3527.282841] wl12xx_driver wl12xx.0.auto wlan0: disabling HT/VHT due to WEP/TKIP use[ 3527.298407] wlan0: associate with fe:f0:28:cc:03:90 (try 1/3)[ 3527.307655] wlan0: RX AssocResp from fe:f0:28:cc:03:90 (capab=0x431 status=0 aid=1)[ 3527.326148] wlcore: Association completed.[ 3527.349780] wlan0: associated[ 3527.352824] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready</pre>  Once the connection process completed successfully, <code>iw</code> reports the link status as follows:<pre class="board-terminal">root@arm:~# iw wlan0 linkConnected to fe:f0:28:cc:03:90 (on wlan0) SSID: SSID_ZyXEL_WPA2 freq: 2437 RX: 13605 bytes (160 packets) TX: 1226 bytes (12 packets)yy device1 signalzz: -22 dBm tx bitratezz: 54.0 MBit/s  bss flagszz: short-preamble short-slot-time dtim periodzz: 1 beacon intzz: 100zz device2
</pre>
====WiFi (client mode)====
The procedure here described can be used to connect to an Access Point, using the WPA2/PSK security protocol with network address given by the AP via DHCP. User can also follow [https://wiki.debian.org/WiFi/HowToUse#Command_Line this guide from Debian Wiki] for a generic approach.
After assigning a (static) IP address As the WiFi driver is not statically linked to the kernel image, it is necessary to load the module first. This operation is done automatically upon boot, as the module is listed in <code>wlan0/etc/modules</code> interface, it is possibile to ping the Access Point:
<pre class="board-terminal">
root@arm:~# ifconfig wlan0 192.168.11.81cat /etc/modulesroot@arm:~# ifconfigeth0 Link encap:Ethernet HWaddr 00:50/etc/modules:C2:1E:AF:E9 inet addr:192.168.0.81 Bcast:192.168.0.255 Mask:255.255kernel modules to load at boot time.255.0 inet6 addr: fe80::250:c2ff:fe1e:afe9/64 Scope:Link# UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1# This file contains the names of kernel modules that should be loaded RX packets:35226 errors:0 dropped:0 overruns:0 frame:0 TX packets:28 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3555583 (3# at boot time, one per line.3 MiB) TX bytes:1906 (1Lines beginning with "#" are ignored.8 KiB)
lo Link encap:Local Loopbackwl12xx inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1</128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)pre>
wlan0 Link encap:Ethernet HWaddr 88:33:14:5E:30:61 inet addr:192.168.11.81 Bcast:192.168.11.255 Mask:255.255.255.0 inet6 addr: fe80::8a33:14ff:fe5e:3061In case you need to unload/64 Scopeload the module manually, the following commands can be used:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<pre class="board-terminal"> RX packetsroot@arm:24970 errors:0 dropped:0 overruns:0 frame:0~# rmmod wl12xx TX packetsroot@arm:12 errors:0 dropped:0 overruns:0 carrier:0~# modprobe wl12xx collisionsroot@arm:0 txqueuelen~# [ 2751.040431] wlcore:1000loaded RX bytes:2448625 (2.3 MiB) TX bytes:1291 (1.2 KiB)</pre>
root@arm:~# ping 192.168.11.243PING 192.168.11.243 (192.168.11.243): 56 data bytes64 bytes from 192.168.11.243: seq=0 ttl=64 Once the WiFi module is loaded, it's time=20.155 ms64 bytes from 192.168.11.243to configure the interface: seq=1 ttl=64 time=11.253 ms64 bytes from 192.168.11.243first of all we need to fix interface renaming with the following command: seq=2 ttl=64 time=11.259 ms64 bytes from 192.168.11.243: seq<pre class=3 ttl=64 time=3.726 ms"board-terminal">64 bytes from 192.168.11.243root@arm: seq=4 ttl=64 time=11.582 ms64 bytes from 192.168.11.243: seq=5 ttl=64 time=3.138 ms64 bytes from 192.168.11.243: seq=6 ttl=64 time=11.221 ms64 bytes from 192.168.11.243: seq=7 ttl=64 time=11.652 ms64 bytes from 192.168.11.243: seq=8 ttl=64 time=11.294 ms64 bytes from 192.168.11.243: seq=9 ttl=64 time=11.268 ms64 bytes from 192.168.11.243: seq=10 ttl=64 time=11.598 ms64 bytes from 192.168.11.243: seq=11 ttl=64 time=11.690 ms^C~# ln --- 192.168.11.243 ping statistics ---12 packets transmitted, 12 packets received, 0% packet lossround-trip mins /dev/null /avgetc/max = 3.138systemd/10.819network/2099-default.155 mslink
</pre>
Generate the PSK from the ESSID and the clear text passphrase using <code>wpa_passphrase</code> tool:
<pre class="board-terminal">
root@arm:~# wpa_passphrase SSID_ZyXEL_WPA2
# reading passphrase from stdin
ZyXEL-WPA2-PSK
network={
ssid="SSID_ZyXEL_WPA2"
#psk="ZyXEL-WPA2-PSK"
psk=ec41b79ebdf10022908aa10189b0341f095fd62eeb719a67c5c920e0cde28564
}
</pre>
In order to automatically load Edit <code>/etc/network/interfaces</code> and change the <code>wl12xxwlan0</code> module on startupconfiguration as follows, issue by entering the following command<code>ssid</code> and <code>psk</code> generated above:
<pre class="board-terminal">
root@arm:~# echo wl12xx >> /etc/modulesauto wlan0iface wlan0 inet dhcp wpa-ssid SSID_ZyXEL_WPA2 wpa-psk ec41b79ebdf10022908aa10189b0341f095fd62eeb719a67c5c920e0cde28564
</pre>
 User can now restart <code>systemd</code> networking service with:<pre class====pip packages===="board-terminal">systemctl restart networking</pre> Please click on Now you can check the ''Expand'' button system configuration using standard tools (<code>route</code>, <code>ifconfig</code>, <code>iw</code>). E.g. to see check the list of the installed pip packages.WiFi link status use:<pre class="board-terminal mw-collapsible mw-collapsed">root@arm:~# pip freezeiw wlan0 linkConnected to fe:f0:28:cc:03:90 (on wlan0) SSID: SSID_ZyXEL_WPA2 freq: 2437 RX: 13605 bytes (160 packets) TX: 1226 bytes (12 packets) signal: -22 dBm tx bitrate: 54.0 MBit/s  bss flags: short-preamble short-slot-time dtim period: 1 beacon int: 100</pre>All of the above configuration are persistent at reboots and automatically started by <code>systemd</code> at boot time. Automat==0.5.0Miscellaneous configurations==Jinja2==2.9=<code>ssh</code> server===The configuration file <code>/etc/ssh/sshd_config</code> is set to permit <code>root</code> user to log in.5MarkupSafe==1=Installing MySQL server with remote access===This section shows how to install MySQL server and how to enable remote access for <code>root</code> user.0PyNaCl{{ImportantMessage|text==1From a security standpoint, giving <code>root</code> user logon permission from any host may be dangerous.0}}  Firstly, install the <code>mysql-server</code> package.1During the installation process, you will set the password for the <code>root</code> user:PyQRCode=<pre class="board-terminal">root@arm:~# sudo apt-get updateGet:1http://security.debian.2org jessie/updates InRelease [63.1kB]PyTrie==0.3..PyYAML==3Reading package lists...12Doneroot@arm:~# sudo apt-get install mysql-serverPygments==2Reading package lists..2.0DoneBuilding dependency treePynetinfo==0.2.3.Twisted==17After this operation, 85.1MB of additional disk space will be used.0appdirs==Do you want to continue? [Y/n]Get:1http://security.4debian.3org/ jessie/updates/main mysql-common all 5.5.54-0+deb8u1 [81.2 kB]argh==0.26.2.argparse==1Configuring mysql-server-5.25---------------------------- While not mandatory, it is highly recommended that you set a password for theMySQL administrative "root" user.1attrs==16If this field is left blank, the password will not be changed.3 New password for the MySQL "root" user:   Repeat password for the MySQL "root" user:  Selecting previously unselected package libaio1:armhf.0autobahn==0.17..Processing triggers for systemd (230-7~bpo8+2) ...root@arm:~#bitstring</pre>  Verify the server is up and running:<pre class==3"board-terminal">root@arm:~# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.1Your MySQL connection id is 43Server version: 5.5.54-0+deb8u1 (Debian) bluepy==1Copyright (c) 2000, 2016, Oracle and/or its affiliates.0All rights reserved.5cbor==1Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates.0Other names may be trademarks of their respectiveowners.0cffi==1Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.9 mysql> exitByeroot@arm:~#</pre>  Edit the <code>/etc/mysql/my.1cnf</code> file in order to comment out the following lines:chardet<pre class="board-terminal">#bind-address =2127.30.0.1#skip-networking</pre>  Restart the server to make the changes take effect:click<pre class="board-terminal">root@arm:~# service mysql restart</pre>  Access MySQL server locally and issue the commands shown below:<pre class=6.7"board-terminal">root@arm:~# mysql -u root -pEnter password:colorama==0Welcome to the MySQL monitor.3 Commands end with ; or \g.2constantly==15Your MySQL connection id is 37Server version: 5.15.54-0+deb8u1 (Debian)crossbar==17Copyright (c) 2000, 2016, Oracle and/or its affiliates.2All rights reserved.1cryptography==1Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates.7Other names may be trademarks of their respectiveowners.2enum34==1Type 'help;' or '\h' for help.1Type '\c' to clear the current input statement.6html5lib==mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;Query OK, 0 rows affected (0.99901 sec)idna==2mysql> SELECT * from information_schema.5user_privileges where grantee like "'root'%";+--------------------+---------------+-------------------------+--------------+| GRANTEE | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |+--------------------+---------------+-------------------------+--------------+| 'root'@'localhost' | def | SELECT | YES || 'root'@'localhost' | def | INSERT | YES || 'root'@'localhost' | def | UPDATE | YES || 'root'@'localhost' | def | DELETE | YES || 'root'@'localhost' | def | CREATE | YES || 'root'@'localhost' | def | DROP | YES || 'root'@'localhost' | def | RELOAD | YES || 'root'@'localhost' | def | SHUTDOWN | YES || 'root'@'localhost' | def | PROCESS | YES || 'root'@'localhost' | def | FILE | YES || 'root'@'localhost' | def | REFERENCES | YES || 'root'@'localhost' | def | INDEX | YES || 'root'@'localhost' | def | ALTER | YES || 'root'@'localhost' | def | SHOW DATABASES | YES || 'root'@'localhost' | def | SUPER | YES || 'root'@'localhost' | def | CREATE TEMPORARY TABLES | YES || 'root'@'localhost' | def | LOCK TABLES | YES || 'root'@'localhost' | def | EXECUTE | YES || 'root'@'localhost' | def | REPLICATION SLAVE | YES || 'root'@'localhost' | def | REPLICATION CLIENT | YES || 'root'@'localhost' | def | CREATE VIEW | YES || 'root'@'localhost' | def | SHOW VIEW | YES || 'root'@'localhost' | def | CREATE ROUTINE | YES || 'root'@'localhost' | def | ALTER ROUTINE | YES || 'root'@'localhost' | def | CREATE USER | YES || 'root'@'localhost' | def | EVENT | YES || 'root'@'localhost' | def | TRIGGER | YES || 'root'@'localhost' | def | CREATE TABLESPACE | YES || 'root'@'arm' | def | SELECT | YES || 'root'@'arm' | def | INSERT | YES || 'root'@'arm' | def | UPDATE | YES || 'root'@'arm' | def | DELETE | YES || 'root'@'arm' | def | CREATE | YES || 'root'@'arm' | def | DROP | YES || 'root'@'arm' | def | RELOAD | YES || 'root'@'arm' | def | SHUTDOWN | YES || 'root'@'arm' | def | PROCESS | YES || 'root'@'arm' | def | FILE | YES || 'root'@'arm' | def | REFERENCES | YES || 'root'@'arm' | def | INDEX | YES || 'root'@'arm' | def | ALTER | YES || 'root'@'arm' | def | SHOW DATABASES | YES || 'root'@'arm' | def | SUPER | YES || 'root'@'arm' | def | CREATE TEMPORARY TABLES | YES || 'root'@'arm' | def | LOCK TABLES | YES || 'root'@'arm' | def | EXECUTE | YES || 'root'@'arm' | def | REPLICATION SLAVE | YES || 'root'@'arm' | def | REPLICATION CLIENT | YES || 'root'@'arm' | def | CREATE VIEW | YES || 'root'@'arm' | def | SHOW VIEW | YES || 'root'@'arm' | def | CREATE ROUTINE | YES || 'root'@'arm' | def | ALTER ROUTINE | YES || 'root'@'arm' | def | CREATE USER | YES || 'root'@'arm' | def | EVENT | YES || 'root'@'arm' | def | TRIGGER | YES || 'root'@'arm' | def | CREATE TABLESPACE | YES |incremental==16| 'root'@'127.0.100.1' | def | SELECT | YES |ipaddress==| 'root'@'127.0.0.1' | def | INSERT | YES || 'root'@'127.0.180.1' | def | UPDATE | YES |lmdb==| 'root'@'127.0.0.921' | def | DELETE | YES |mistune==| 'root'@'127.0.70.31' | def | CREATE | YES |ndg-httpsclient==| 'root'@'127.0.30.21' | def | DROP | YES |netaddr==| 'root'@'127.0.70.191' | def | RELOAD | YES |packaging==16| 'root'@'127.0.0.81' | def | SHUTDOWN | YES |pathtools==| 'root'@'127.0.0.1' | def | PROCESS | YES || 'root'@'127.0.20.1' | def | FILE | YES |ply==3| 'root'@'127.0.0.41' | def | REFERENCES | YES |psutil==5| 'root'@'127.20.0.1' | def | INDEX | YES |py-ubjson==| 'root'@'127.0.80.51' | def | ALTER | YES |pyOpenSSL==16| 'root'@'127.20.0.1' | def | SHOW DATABASES | YES |pyasn1==| 'root'@'127.0.20.31' | def | SUPER | YES |pyasn1-modules==| 'root'@'127.0.0.81' | def | CREATE TEMPORARY TABLES | YES |pycparser==2| 'root'@'127.0.0.171' | def | LOCK TABLES | YES |pyparsing==2| 'root'@'127.0.0.1.10' | def | EXECUTE | YES |requests==2| 'root'@'127.40.30.1' | def | REPLICATION SLAVE | YES |sdnotify==| 'root'@'127.0.30.1' | def | REPLICATION CLIENT | YES |service-identity==16| 'root'@'127.0.0setproctitle==1.1.10' | def | CREATE VIEW | YES |shutilwhich==1| 'root'@'127.10.0.1' | def | SHOW VIEW | YES |six==1| 'root'@'127.100.0.1' | def | CREATE ROUTINE | YES |sortedcontainers==1| 'root'@'127.0.50.71' | def | ALTER ROUTINE | YES |suds==| 'root'@'127.0.40.1' | def | CREATE USER | YES |treq==16| 'root'@'127.120.0.1' | def | EVENT | YES |txaio==2| 'root'@'127.0.60.1' | def | TRIGGER | YES |u-msgpack-python==2| 'root'@'127.30.0.1' | def | CREATE TABLESPACE | YES || 'root'@'::1' | def | SELECT | YES || 'root'@'::1' | def | INSERT | YES || 'root'@'::1' | def | UPDATE | YES || 'root'@'::1' | def | DELETE | YES || 'root'@'::1' | def | CREATE | YES |urllib3==| 'root'@'::1' | def | DROP | YES || 'root'@'::1' | def | RELOAD | YES || 'root'@'::1' | def | SHUTDOWN | YES || 'root'@'::1' | def | PROCESS | YES || 'root'@'::1' | def | FILE | YES || 'root'@'::1' | def | REFERENCES | YES || 'root'@'::1' | def | INDEX | YES || 'root'@'::1' | def | ALTER | YES || 'root'@'::1' | def | SHOW DATABASES | YES || 'root'@'::1' | def | SUPER | YES || 'root'@'::1' | def | CREATE TEMPORARY TABLES | YES || 'root'@'::1' | def | LOCK TABLES | YES || 'root'@'::1' | def | EXECUTE | YES || 'root'@'::1' | def | REPLICATION SLAVE | YES || 'root'@'::1' | def | REPLICATION CLIENT | YES || 'root'@'::1' | def | CREATE VIEW | YES || 'root'@'::1' | def | SHOW VIEW | YES || 'root'@'::1' | def | CREATE ROUTINE | YES || 'root'@'::1' | def | ALTER ROUTINE | YES || 'root'@'::1' | def | CREATE USER | YES || 'root'@'::1' | def | EVENT | YES || 'root'@'::1' | def | TRIGGER | YES || 'root'@'::1' | def | CREATE TABLESPACE | YES || 'root'@'%' | def | SELECT | YES || 'root'@'%' | def | INSERT | YES || 'root'@'%' | def | UPDATE | YES || 'root'@'%' | def | DELETE | YES || 'root'@'%' | def | CREATE | YES || 'root'@'%' | def | DROP | YES || 'root'@'%' | def | RELOAD | YES || 'root'@'%' | def | SHUTDOWN | YES || 'root'@'%' | def | PROCESS | YES || 'root'@'%' | def | FILE | YES || 'root'@'%' | def | REFERENCES | YES || 'root'@'%' | def | INDEX | YES || 'root'@'%' | def | ALTER | YES || 'root'@'%' | def | SHOW DATABASES | YES || 'root'@'%' | def | SUPER | YES || 'root'@'%' | def | CREATE TEMPORARY TABLES | YES || 'root'@'%' | def | LOCK TABLES | YES || 'root'@'%' | def | EXECUTE | YES || 'root'@'%' | def | REPLICATION SLAVE | YES || 'root'@'%' | def | REPLICATION CLIENT | YES || 'root'@'%' | def | CREATE VIEW | YES || 'root'@'%' | def | SHOW VIEW | YES || 'root'@'%' | def | CREATE ROUTINE | YES || 'root'@'%' | def | ALTER ROUTINE | YES || 'root'@'%' | def | CREATE USER | YES || 'root'@'%' | def | EVENT | YES || 'root'@'%' | def | TRIGGER | YES || 'root'@'%' | def | CREATE TABLESPACE | YES |+--------------------+---------------+-------------------------+--------------+140 rows in set (0.902 sec) mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.100 sec) mysql></pre>  You should be able to access from remote host:virtualenv<pre class==1"board-terminal">dvdk@osboxes:~$ mysql -u root -ppassword -h 192.7168.10.281 watchdog==0Welcome to the MySQL monitor.8 Commands end with ; or \g.3 Your MySQL connection id is 37 wheel==0Server version: 5.245.54-0+deb8u1 (Debian) wsgiref==0Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.1 Oracle is a registered trademark of Oracle Corporation and/or its affiliates.2Other names may be trademarks of their respective zopeowners.interface==4 Type 'help;' or '\h' for help.3Type '\c' to clear the current input statement.3 mysql>
</pre>
a000298_approval, dave_user
299
edits

Navigation menu