| 
				   | 
				
| (152 intermediate revisions by the same user not shown) | 
| Line 1: | 
Line 1: | 
 | Software developer over several open source languages
  |  | [[AFT installation]]  | 
 | 
  |  | 
  | 
 | == A simplest working system ==
  |  | [[Manteiner python3-numpy]]  | 
 | === The AFT net ===
  |  | 
 | 
  |  | 
  | 
 | The testable devices are put in an isolated network (AKA AFT net). ''''' Having in mine that Remote power switch is over AFT net too with ip 192.168.1.100 '''''
  |  | [[Arduino Single power control unit]]  | 
 |    |  | 
 | {| class="wikitable"
  |  | 
 | |+Line color code
  |  | 
 | |-
  |  | 
 | |Blue
  |  | 
 | |AC cable
  |  | 
 | |-
  |  | 
 | |Orange
  |  | 
 | |USB cable
  |  | 
 | |-
  |  | 
 | |Green
  |  | 
 | |Ethernet cable
  |  | 
 | |-
  |  | 
 | |Black
  |  | 
 | |Not a cable
  |  | 
 | |}
  |  | 
 |    |  | 
 | [[File:AFT.png]]  |  | 
 |    |  | 
 | === xx ===
  |  | 
 | <pre>
  |  | 
 | wget -qO- BASE_SUPPORT_IMAGES_URL/minnowUSB.image.tar.gz | gunzip | tar -xOvf - | dd of=/dev/sdb
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | === Setup harness server ===
  |  | 
 | ==== OS Installation ====
  |  | 
 | The Linux distribution installed upon harness server during the creation of this document was Ubuntu yakkety.
  |  | 
 |    |  | 
 | ===== Important facts upon installation =====
  |  | 
 | During Installation process of Ubuntu It'll be requested the creation of a user, please create the user with the name '''''tester'''''. Additionally the computer name will have to be '''''testing-harness'''''.
  |  | 
 |    |  | 
 | When installation has finished. The 'sudo group' has to be enabled as passwordless upon file '/etc/sudoers'.
  |  | 
 | <pre>
  |  | 
 | # Allow members of group sudo to execute any command
  |  | 
 | %sudo ALL=(ALL) NOPASSWD: ALL
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | It is important to denote that user tester has been set as part of 'sudo group' by the default Ubuntu installation.
  |  | 
 | '''''With user tester is going to be executed the overall of automated testing'''''.
  |  | 
 |    |  | 
 | ===== Ram and Disk distribution =====
  |  | 
 | The Ram and Disk details this harness server during the creation of this document were:
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# free -m
  |  | 
 |               total        used        free      shared  buff/cache   available
  |  | 
 | Mem:          15945         251       12904          54        2790       15311
  |  | 
 | Swap:         16278           0       16278
  |  | 
 |    |  | 
 | root@testing-harness:~# fdisk -l /dev/sda
  |  | 
 | Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
  |  | 
 | Units: sectors of 1 * 512 = 512 bytes
  |  | 
 | Sector size (logical/physical): 512 bytes / 4096 bytes
  |  | 
 | I/O size (minimum/optimal): 4096 bytes / 4096 bytes
  |  | 
 | Disklabel type: gpt
  |  | 
 | Disk identifier: B15E7DED-0607-4F32-8072-8CEC8041A1A8
  |  | 
 |    |  | 
 | Device          Start        End    Sectors   Size Type
  |  | 
 | /dev/sda1        2048    1050623    1048576   512M EFI System
  |  | 
 | /dev/sda2     1050624 1920184319 1919133696 915.1G Linux filesystem
  |  | 
 | /dev/sda3  1920184320 1953523711   33339392  15.9G Linux swap
  |  | 
 |    |  | 
 | root@testing-harness:~# df -h
  |  | 
 | Filesystem      Size  Used Avail Use% Mounted on
  |  | 
 | udev            7.8G     0  7.8G   0% /dev
  |  | 
 | tmpfs           1.6G  9.3M  1.6G   1% /run
  |  | 
 | /dev/sda2       901G   39G  817G   5% /
  |  | 
 | tmpfs           7.8G  156K  7.8G   1% /dev/shm
  |  | 
 | tmpfs           5.0M  4.0K  5.0M   1% /run/lock
  |  | 
 | tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
  |  | 
 | /dev/sda1       511M  3.4M  508M   1% /boot/efi
  |  | 
 | tmpfs           1.6G   44K  1.6G   1% /run/user/111
  |  | 
 | tmpfs           1.6G     0  1.6G   0% /run/user/1000
  |  | 
 |    |  | 
 |    |  | 
 | </pre>
  |  | 
 |    |  | 
 | ==== Firewall configuration ====
  |  | 
 | Firewall configuration is not provided, it is recommended that the testing harness is only kept in a trusted network.
  |  | 
 |    |  | 
 | To check if no firewall are configured over testing-harness, we can expect a similar output when inquiring iptables... 
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# iptables -L && iptables -t nat -L
  |  | 
 | Chain INPUT (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 |    |  | 
 | Chain FORWARD (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 |    |  | 
 | Chain OUTPUT (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 |    |  | 
 | Chain PREROUTING (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 |    |  | 
 | Chain INPUT (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 |    |  | 
 | Chain OUTPUT (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 |    |  | 
 | Chain POSTROUTING (policy ACCEPT)
  |  | 
 | target     prot opt source               destination         
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | ==== Setup Security shell ====
  |  | 
 | OpenSSH is a freely available version of the Secure Shell (SSH) protocol family of tools for remotely controlling, or transferring files between, computers. That's why it is required its installation upon testing-harness server.
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# aptitude install openssh-server 
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | ==== Setup NFS ====
  |  | 
 | AFT applies Network file system to share /home/tester directory where images and other files used in flashing for PC-devices within AFT net can be found.
  |  | 
 |    |  | 
 | ===== NFS is installed ? =====
  |  | 
 | To check if the NFS server is installed, we can do...
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# dpkg -l | grep nfs-kernel-server
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | ===== How to install NFS ? =====
  |  | 
 | To install NFS these are the required packages... 
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# aptitude install nfs-kernel-server
  |  | 
 | The following NEW packages will be installed:
  |  | 
 |   keyutils{a} libnfsidmap2{a} libtirpc1{a} nfs-common{a} nfs-kernel-server 
  |  | 
 |   rpcbind{a} 
  |  | 
 | 0 packages upgraded, 6 newly installed, 0 to remove and 459 not upgraded.
  |  | 
 | Need to get 470 kB of archives. After unpacking 1 884 kB will be used.
  |  | 
 | Do you want to continue? [Y/n/?]
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | ===== Sharing /home/tester directory =====
  |  | 
 | The tester’s home will be set as shared directory 
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# cd /etc
  |  | 
 | root@testing-harness:~# echo '/home/tester 192.168.1.0/24 (crossmnt,ro,root_squash,sync,no_subtree_check)' >> exports
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | ==== Setup DNS cache and DHCP server for AFT net ====
  |  | 
 | DNSmasq provides two services, either of which can be used independently.
  |  | 
 | # DNS service
  |  | 
 | # DHCP service
  |  | 
 |    |  | 
 | A local DNS cache can speed up internet browsing because the user's applications will not need to access a domain name server when it looks up a domain name the computer has visited before.
  |  | 
 |    |  | 
 | ===== How to install dnsmasq ? =====
  |  | 
 | To install dnsmasq these are the required packages... 
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# aptitude  install dnsmasq
  |  | 
 | The following NEW packages will be installed:
  |  | 
 |   dns-root-data{a} dnsmasq dnsmasq-base{a} 
  |  | 
 | 0 packages upgraded, 3 newly installed, 0 to remove and 459 not upgraded.
  |  | 
 | Need to get 0 B/329 kB of archives. After unpacking 886 kB will be used.
  |  | 
 | Do you want to continue? [Y/n/?
  |  | 
 | </pre>
  |  | 
 | At the sametime we have set up a simple DNS server. To test it, use your favorite DNS lookup tool pointed at localhost
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# nslookup yoctoproject.org localhost
  |  | 
 | Server:		localhost
  |  | 
 | Address:	127.0.0.1#53
  |  | 
 |    |  | 
 | Non-authoritative answer:
  |  | 
 | Name:	yoctoproject.org
  |  | 
 | Address: 140.211.169.56
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | ===== Configure DHCP server =====
  |  | 
 | To enable the DHCP server of AFT net, you will need to give it a range of IP addresses to hand out. The AFT net server would hand out 92 address starting at 192.168.1.2 and ending at 192.168.1.99.
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# echo 'dhcp-range=192.168.1.2,192.168.1.99,10m' >> /etc/dnsmasq.conf
  |  | 
 | </pre>
  |  | 
 |    |  | 
 | To tell dnsmasq which ethernet interface it can and cannot listen on.
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# echo 'interface=eno1' >> /etc/dnsmasq.conf
  |  | 
 | </pre>
  |  | 
 | During the creation of this document the interface eno1 is the unique one connected to AFT net.
  |  | 
 |    |  | 
 | ===== AFT and its relation with dnsmasq.leases =====
  |  | 
 | As of dhcp server is up and running. AFT shall utilize dhcp-server's active ip leasing information to determine device IP address of PC-devices over AFT net. By default it is found upon /var/lib/misc/dnsmasq.leases
  |  | 
 | <pre>
  |  | 
 | root@testing-harness:~# cat /var/lib/misc/dnsmasq.leases
  |  | 
 |    |  | 
 | 1417132679 78:c5:e5:b4:4d:07 192.168.1.99 minox-fbe390b0bb404da *
  |  | 
 | 1417134678 20:54:76:e4:d8:a5 192.168.1.57 minoy-ab6e5d0a524c9c7d *
  |  | 
 | ......
  |  | 
 | .......
  |  | 
 | ........ and so on...
  |  | 
 | </pre>
  |  | 
 | Above a common dnsmasq.leases file.
  |  |