Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Atmel, PIC, VEX, Fischertechnik

Moderator: Moderatoren

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 11. Apr 2015 15:31

Quick Guide für Raspberry Pi
Copyright (C): Helmut Wunder 2015, 2016

Anleitungen und Einstellungen insb. für Raspberry Pi 2 mit Raspbian Jessie Betriebssystem



Raspi2.jpg
Raspberry Pi 2 B
Raspbian_Jessie.jpg
(Raspbian) Jessie ;)

Bildnachweis: https://www.raspberrypi.org/wp-content/ ... G_0727.jpg



DONATE / SPENDE:
Gefällt dir dieses Kompendium und möchtest du dafür einen kleinen Betrag über PAYPAL spenden ?
Dann klicke einfach auf diesen Link -
Ab einer Spende ab EUR 5,- kannst du auf Wunsch dieses Kompendium auch als kostenloses WORD.doc erhalten (per Email oder Download als .zip, z.T. weniger Abbildungen aus urheberrechtlichen Gründen):

-> Ja, ich möchte etwas als Anerkennung spenden <-


Ein ganz herzliches Dankeschön! :prima:




Lizenz-Hinweise:
Helmut Wunder ( HaWe) hat geschrieben:für alle hier veröffentlichten Software-Source-Codes gilt:
/*
// (C) Helmut Wunder (HaWe) 2015
// freie Verwendung für private Zwecke
// für kommerzielle Zwecke nur nach Genehmigung durch den Autor.
// Programming language: C/C++
// protected under the friendly
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// http://creativecommons.org/licenses/by-nc-sa/3.0/
//
// alle Codes wurden zur Verfügung gestellt in der Hoffnung, dass sie nützlich sind,
// Irrtümer vorbehalten, Benutzung auf eigenes Risiko,
// ohne Anspruch auf Schadenersatz, Garantie oder Gewährleistung
// für irgendwelche eventuellen Schäden, die aus ihrer Benutzung entstehen könnten.
//
// unabhängig hiervon gelten die Lizenz-rechtlichen Besimmungen der Original-Autoren
//
*/




Direkte Links:

Tutorial dt. Raspberry Pi Forum: http://www.forum-raspberrypi.de/Thread- ... rter-guide
Einführung Embedded Linux: http://rn-wissen.de/wiki/index.php/Embe ... ht_gemacht
Raspberry Pi magazine: https://www.raspberrypi.org/magpi/issues
Raspberry Pi C/C++ projects: http://www.raspberry-projects.com/pi/ca ... mming-in-c
Link zu Raspberry Pi Ressources: http://www.robot-electronics.co.uk/htm/ ... amples.htm
INFO: updates to Raspbian:
https://www.raspberrypi.org/blog/anothe ... -raspbian/
https://www.raspberrypi.org/blog/introducing-pixel/


C/C++ tutorials:

Einsteiger-Programmierkurs: C für Raspberry Pi (free download)
https://www.raspberrypi.org/magpi/issue ... ials-c-v1/
berichtigte Auflage: http://fractal.math.unr.edu/~ejolson/pi ... dified.pdf

C++ for dummies:
http://www.cs.uah.edu/~rcoleman/Common/ ... UMMIES.pdf

Tutorial C language:
http://c-language.com/

Übersicht:
http://shop.oreilly.com/category/browse ... mming/c.do



Übersicht:

Erstinstallation: viewtopic.php?f=78&t=8689&p=69665#p69665

LAN, WiFi, USB, Laufwerke: viewtopic.php?f=78&t=8689#p67769
USB Leistung, USB Laufwerke: viewtopic.php?f=78&t=8689&p=70017#p70017
SD-Card: viewtopic.php?f=78&t=8689&p=70017#p67770
Heimnetz-Integration: viewtopic.php?f=78&t=8689&p=70017#p67777

Linux Tipps, Tools, Add-Ons: viewtopic.php?f=78&t=8689&p=70019#p70019

gcc (ANSI C) und Geany: viewtopic.php?f=78&t=8689&p=67771#p70020
g++ (C++) und Geany: viewtopic.php?f=78&t=8689&p=67771#p67772
C/C++ source code examples: viewtopic.php?f=78&t=8689&p=67860#p67773

openVG Graphic: viewtopic.php?f=78&t=8689&p=67838#p67774

GPIOs: wiringPi + pigpio: viewtopic.php?f=78&t=8689&start=15#p67924
GPIO Beispiele: viewtopic.php?f=78&t=8689&p=67780#p67785

Encoder-Motoren: viewtopic.php?f=78&t=8689&p=67780#p67780
Motor Shields: ab viewtopic.php?f=78&t=8689&start=45#p70057

UART: viewtopic.php?f=78&t=8689&start=15#p67781
UART-Verbindung zu Arduino: viewtopic.php?f=78&t=8689&start=30#p70513
USB als UART nutzen: viewtopic.php?f=78&t=8689&start=30#p70052

I2C: viewtopic.php?f=78&t=8689&start=30#p67908
i2c Raspi-Arduino-Kommunikation: viewtopic.php?f=78&t=8689&p=67909#p67909
i2c Sensoren/Geräte : viewtopic.php?f=78&t=8689&p=70055#p70055

i2c ud SPI Muxer (MCP..., PCF...): viewtopic.php?f=78&t=8689&p=68574#p70516

Motor Shields: ab viewtopic.php?f=78&t=8689&start=45#p70057

DHT11 Temperatur/Luftfeuchtesensor (1-Wire): viewtopic.php?f=78&t=8689&p=69022#p69022

Multitasking: viewtopic.php?f=78&t=8689&p=70061#p70061

SD- und HD-Dateioperationen: viewtopic.php?f=78&t=8689&p=70062#p70062

Lego-Sensoren am Raspi: viewtopic.php?f=78&t=8689&p=69023#p69178

Display OLED i2c : viewtopic.php?f=78&t=8689&p=69371#p69370
Display HDMI TFT : viewtopic.php?f=78&t=8689&p=69371#p69719
LCD 1602 + 2004 i2c : viewtopic.php?f=78&t=8689&p=69371#p69788

Audio Libs: viewtopic.php?f=78&t=8689&p=69383#p69383

C/C++ Zusatzfunktionen und Tipps: viewtopic.php?f=78&t=8689&start=75#p69661

Arduino-IDE auf Raspi installieren: viewtopic.php?f=78&t=8689&p=70103#p70103

Arduino-Framework für Raspi: viewtopic.php?f=78&t=8689&p=70103#p70114

Pi Cam: viewtopic.php?f=78&t=8689&p=70115#p70115

openCV: viewtopic.php?f=78&p=70117#p70116

GTK, GTK++ : viewtopic.php?f=78&p=70791#p70791


.. . GPIOs:
RPi_GPIO_pinout.png

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 11. Apr 2015 15:31

Raspberry Pi: Erstinstallation mit NOOBS:



Vorbereitungen und erste Schritte:

a) SD-Karte ab 8GB, besser aber 16 -32 GB
mit FAT32-formatieren, am besten nicht über Windows sondern mit dem SD Formatter der SD Association:
https://www.sdcard.org/downloads/formatter_4/

b) Download des NOOBS zip-Files und weitere Anleitung:
https://www.raspberrypi.org/downloads/noobs/
zip-File entpacken und Inhalt des entpackten Ordners einfach auf die SD-Karte kopieren.

c) An den Raspi Maus, Tastatur und ein HDMI-Display anschließen.
Eine LAN-Kabelverbindung mit Internet ist sehr hilfreich für alle Installationsoptionen.
Am besten daher auch ein LAN-Kabel anschließen oder notfalls einen WiFi-Stick einsetzen.

d) SD-Karte in Raspi einstecken und dann Raspi starten.
(Noobs erstellt selbstständig das LINUX File System samt aller Installations- und Programmdateien.)

e) Aus den dann angezeigten Optionen Raspbian auswählen.
Aufpassen, dass man bereits hier vorher deutsche Sprache und deutsches Keyboard als Option mit anwählt (ganz unten, unter der Liste).
Der Rest läuft jetzt vollautomatisch!


f) Update/Upgrade auf aktuelle Version:
Nach abgeschlossener Installation Terminal/Konsolen-Fenster öffnen:

Code: Alles auswählen

Menu > Other > LX Terminal

und eingeben:

Code: Alles auswählen

sudo apt-get update
sudo apt-get upgrade
#dann
sudo reboot now
sudo apt-get autoremove

weitere spezielle Upgrade-Prozeduren finden sich bei den jeweiligen Releases, die letzten (4/16 und 10/16) unter
https://www.raspberrypi.org/blog/another-update-raspbian/
https://www.raspberrypi.org/blog/introducing-pixel/

Jetzt holt sich der RPi automatisch übers Internet die aktuellsten Daten (wenn das Internet funktioniert).
Kontrolle der eingespielten Version im LXTerminal:

Code: Alles auswählen

cat /etc/os-release

Ausgabe dann z.B.:

Code: Alles auswählen

PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"


genaue Version:

Code: Alles auswählen

uname -a

ergibt z.B.:

Code: Alles auswählen

Linux raspberrypi 4.4.13-v7+



wenn das Internet nicht funktioniert:
s. nächsters Kapitel!

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 11. Apr 2015 15:31

Platzhalter

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 11. Apr 2015 15:31

Platzhalter

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 29. Jul 2015 08:56

Raspberry Pi: Netzwerk, Internet, USB, externe Laufwerke

LAN, WLAN und Internet:
a) Kabelgebundenes LAN einrichten
wenn nicht automatisch erkannt: network/interfaces manuell abändern:

dazu erst eine Sicherheitskopie erstellen:

Code: Alles auswählen

sudo cp /etc/network/interfaces /etc/network/interfaces_bak


Einstellungen in network/interfaces : Standardeinträge in network/interfaces sind:

Code: Alles auswählen

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual
#alternativ:
#iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#alternativ:
#iface eth0 inet dhcp

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#alternativ:
#iface eth0 inet dhcp



b) WLAN einrichten

Lit.: https://www.raspberrypi.org/documentati ... /wireless/


[ A ] WLAN-Netzwerk-Verbindung über die GUI verbinden und überprüfen

Raspbian Desktop:
das WLAN-Netzwerk-Tool der GUI zeigt beim Anklicken die verfügbaren Netzwerke und beim Anklicken des Netzwerkes wird das Passwort abgefragt.
falls die GUI noch nicht gestartet wurde: Eingabe von der Konsole: startx
wenn die GUI gestartet ist, oben rechts in der Taskleiste auf das Antennen-Symbol klicken (auf der rechten Seite, neben dem Lautstärke Icon). Dort klickt man mit der linken Maustaste drauf und es wird eine Liste mit verfügbaren WLAN-Netzwerken angezeigt.
Sollte das nicht der Fall sein, einfach etwas warten, ggf. mal neustarten, wenn man den WLAN USB-Stick gerade neu eingesteckt hat. Dort einfach auf das richtige Netzwerk klicken und den Schlüssel eingeben.



[ B ] manuelle Installation und Konfiguration
Quelle: http://www.forum-raspberrypi.de/Thread- ... #pid179585

1. Terminal starten
(z.B LX-Terminal)

2. Update des Systems:

Code: Alles auswählen

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
(bei Problemen mit LAN-Schnittstelle überspringen)

3. überprüfen, ob der WLAN-Stick angeschlossen ist:

Code: Alles auswählen

lsusb
listet alle via USB angeschlossenen Geräte auf.
Darunter müsste sich auch der WLAN-Stick befinden
(Anm.: WLan-Stick kurz rausziehen, dann sollte wlan0 gar nicht mehr auftauchen, wenn man ifconfig eingibt.
Das heißt also, wenn wlan0 auftaucht, wird auch der Stick erkannt )

4. Ist der WLAN-Stick erfolgreich erkannt worden, die Netzwerk-Config aufrufen:

Code: Alles auswählen

sudo ifconfig
Dort müsste mit wlan0 der Stick als Schnittstelle fürs WLAN eingetragen sein.

5. Sicherheitskopie der WLAN-Einstellungen erstellen:

Code: Alles auswählen

sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.bak
für den Fall, dass etwas schief läuft, kann man den alten Stand leicht wieder herstellen.

6. dann WLAN-Config-Dateien editieren:

Code: Alles auswählen

sudo leafpad  /etc/wpa_supplicant/wpa_supplicant.conf
unter der Zeile:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
folgendes eintragen:

Code: Alles auswählen

network={
ssid="meinWLANNETZNAME"
psk="meinPASSWORT"
}
zwischen den Anführungszeichen den echten Namen für SSID und das WLAN-Passwort (PSK) einfügen.


7. statische IP setzen:
um eine statische IP zu setzen, funktionieren IP- Einträge in /etc/network/interfaces meistens nicht.
Stattdessen:
Einträge in /etc/network/interfaces auf "manual" setzen, also z.B.

Code: Alles auswählen

iface wlan0 inet manual

Dann diese Datei öffnen: sudo leafpad /etc/dhcpcd.conf
und am Ende hinzufügen(# hier ntl die richtigen/gewünschten IP einsetzen!)

Code: Alles auswählen

interface wlan0
static ip_address=192.168.1.10/24   
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Anm.: /24 steht für subnet mask 255.255.255.0


als letztes dann immer neu starten:

Code: Alles auswählen

sudo reboot





c) alternativen Internet-Browser einrichten

Iceweasel (Firefox-Klon):

Code: Alles auswählen

sudo apt-get install iceweasel
# neuerdings auch:
sudo apt-get install firefox

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Dummies (Baustelle)

Beitragvon HaWe » 29. Jul 2015 08:56




es folgen jetzt einige optionale Network- und SD-Settings und Tools, weiter geht es dann mit Geany hier:

http://www.mindstormsforum.de/viewtopic.php?t=8689#p70020


Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 08:04

Optionale Settings und Tools :

a) mobiles Internet mit Surfstick / GSM Card

s.u.a.:
http://tutorials-raspberrypi.de/raspberry-pi-gsm-modul-mobiles-internet/
https://www.video2brain.com/de/tutorial/internetverbindung-mit-usb-surfstick-herstellen

b) Leistung an USB-Ports maximal erhöhen:

USB Ports haben normalerweise ein zu niedrieges Strom-Limit, daher muss dies manuell auf >1A erhöht werden:

Code: Alles auswählen

sudo leafpad /boot/config.txt 
# am Schluss einfügen
max_usb_current=1



c) externe USB-Laufwerke einbinden

wenn die GUI läuft, wird ein eingestecktes USB-Laufwerk automatisch erkannt ("gemounted"). Am besten klappt der Zugriff mit FAT/FAT32-Formatierung.
Man findet das Laufwerk mit Namen [drvname] im Verzeichnisbaum als Verzeichnis (Ordner) unter
/media/pi/[drvname]

Jetzt kann man Daten drauf speichern wie von PCs her bekannt und sogar vom Windowws Netzwerk darauf zugreifen.

SD-Card
d) Linux Partition auf SD-Karte komplett löschen zur Neukonfiguration

SDFormatter
https://www.google.de/url?sa=t&rct=j&q= ... _NwcR-C0_g


e) SD-card Backup erstellen:

Win32DiskImager
https://sourceforge.net/projects/win32diskimager/


Roadkil’s Disk Image
https://linuxundich.de/raspberry-pi/linux-images-fuer-den-raspberry-pi-auf-sd-karte-installieren/
http://www.roadkil.net/program.php/P12/Disk%20Image


f) SD-card Backup lokal auf Raspi erstellen (via Raspi USB SD-Adapter) :

Das Raspbian Release mit Pixel Desktop (ab 2016-04-14) enthält in Menu -> Zubehör das Tool SD Card Copier, mit dem man im laufenden Betrieb die interne SD Card auf eine externe SD-Card (im USB Card Reader) samt allen Partitionen kopieren kann!
https://www.raspberrypi.org/blog/anothe ... -raspbian/


g) externe SD-Laufwerke mounten und browsen :

Partitionen auflisten:

Code: Alles auswählen

ls /dev/sd*

zeigt z.B.
/dev/sda1 /dev/sda2 /dev/sda5 /dev/sda6 /dev/sda7

ebenfalls kann man mit fdisk eine Übersicht über die SD Partitionen bekommen:

Code: Alles auswählen

sudo fdisk -l /dev/sda

sda7 ist z.B. die Linux Partition.

Mounten des Drives:

Code: Alles auswählen

sudo mkdir /media/pi/ext_root
sudo mount /dev/sda7 /media/pi/ext_root

Jetzt kann man sich die Daten auf ext_root ansehen

Code: Alles auswählen

cd /media/pi/ext_root
ls

und auch mit Original-Ordnern vergleichen:

Code: Alles auswählen

diff  /home/pi  /media/pi/ext_root/home/pi
diff -r  /home/pi  /media/pi/ext_root/home/pi

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 08:04

optional: Heimnetz und Windows Workgroup :
h) RaspberryPi ins Windows Heimnetz einbinden und freigeben

klappt nicht immer leider, viele Quellen geben verschiedene, teilw. widersprüchliche Anweisungen, wo immer irendwas nicht 100% sicher funktioniert:

Version 1) http://raspberrywebserver.com/serveradm ... twork.html

angeblich besser auf Raspbian (Jessie, Stretch) zugeschnitten:

Version 2) http://simplesi.net/auto-install-a-simple-samba-setup/
(hat gut funktioniert mit Raspbian Stretch !)

Code: Alles auswählen

wget https://dl.dropbox.com/s/wjlshn22z80rzpv/simplesamba.sh
# and then run
sudo bash simplesamba.sh


Version 3) https://oshlab.com/setting-samba-raspberry-pi/
hat gut funktioniert mit Raspbian Jessie, wenn smb.conf aber stattdessen in dieser folgenden abgeänderten Weise gepatcht wurde:

Code: Alles auswählen

#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
#  - When such options are commented with ";", the proposed setting
#    differs from the default Samba behaviour
#  - When commented with "#", the proposed setting is the default
#    behaviour of Samba but the option is considered important
#    enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   
workgroup = WORKGROUP
#################
wide links = yes
#################

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
wins support = no
#wins support = yes

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
;   wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.
   dns proxy = no

#### Networking ####

# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
;   interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
;   bind interfaces only = yes



#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
   log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).
   max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
#   syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
   syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace
   panic action = /usr/share/samba/panic-action %d


####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using. 
   passdb backend = tdbsam

   obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
   pam password change = yes

# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
   map to guest = bad user

########## Domains ###########

#
# The following settings only takes effect if 'server role = primary
# classic domain controller', 'server role = backup domain controller'
# or 'domain logons' is set
#

# It specifies the location of the user's
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
;   logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
# (this is Samba's default)
#   logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
;   logon drive = H:
#   logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
;   logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe.  The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe. 
# The following assumes a "machines" group exists on the system
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u

# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe. 
; add group script = /usr/sbin/addgroup --force-badname %g

############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /home/samba/etc/smb.conf.%m

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash

# Setup usershare options to enable non-root users to share folders
# with the net usershare command.

# Maximum number of usershare. 0 (default) means that usershare is disabled.
;   usershare max shares = 100

# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
   usershare allow guests = yes

#======================= Share Definitions =======================

[homes]
   comment = Home Directories
   browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
   create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
   directory mask = 0700

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# The following parameter makes sure that only "username" can connect
# to \\server\username
# This might need tweaking when using external authentication schemes
   valid users = %S

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
;   comment = Network Logon Service
;   path = /home/samba/netlogon
;   guest ok = yes
;   read only = yes

# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
;   comment = Users profiles
;   path = /home/samba/profiles
;   guest ok = no
;   browseable = no
;   create mask = 0600
;   directory mask = 0700

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
;   write list = root, @lpadmin

[root]
 comment = Admin Config Share 
 path = /
 browseable = yes 
 force user = root
 force group = root
 admin users = pi
 writeable = yes
 read only = no
 guest ok = yes
 create mask = 0777
 directory mask = 0777

 #-------------------------------------------------------------------" 

 [pi]
 comment = pi user /homepi folder
 path = /home/pi
 browseable = yes
 force user = pi
 force group = pi
 admin users = pi
 writeable = yes
 read only = no
 guest ok = yes
 create mask = 0777
 directory mask = 0777





###########################################################

i) CUPS Drucker Service installieren

klappt auch nicht immer leider, viele Quellen geben verschiedene Anweisungen, die aber alle nicht immer 100% funktionieren...:

http://www.penguintutor.com/linux/printing-cups

sudo aptitude install smbclient

sudo apt-get install cups
sudo service cups restart

# falls der Drucker letztendlich nicht erkannt wird, zusätzlich dies hier einfügen:
# sudo apt-get install smbclient printer-driver-gutenprint
# sudo service cups restart

sudo usermod -a -G lpadmin pi

# Internet-Browser:
http://127.0.0.1:631
choose the Administration Tab and then select "Add Printer",
login:
pi
raspberry

manually provide service name, as:
smb://host/printername

follow driver installation menu

editieren: /etc/modules-load.d/cups-filters.conf,
alles auskommentieren

###########################################################

j) Windows PC fernsteuern:
http://c64-online.com/?p=1471

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany fürNewbies

Beitragvon HaWe » 14. Okt 2015 08:04




es folgen jetzt einige optionale Linux-Settings und Tools, weiter geht es dann mit Geany hier:

http://www.mindstormsforum.de/viewtopic.php?t=8689#p70020


Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 08:04

Linux Tipps, Tools und Add-Ons (optional)
(aus verschiedenen Foren zusammengetragen)

###########################################################
uninstall packages

Code: Alles auswählen

sudo apt-get --purge remove <package>



###########################################################

freier Speicherplatz auf SD:
Im Terminal eingeben:

Code: Alles auswählen

df
# oder
df -h


###########################################################

Sicherungskopie einer Datei erstellen, bevor man sie editiert:
Im Terminal eingeben (z.B.)

Code: Alles auswählen

sudo cp /mypath/myfilename /mypath/myfilename_bak
Leerzeichen u/o Minuszeichen im Dateipfad/namen vermeiden!


###########################################################

Keyboard-Layout ändern deutsch/englisch:

Code: Alles auswählen

setxkbmap de
setxkbmap us


###########################################################

Systemeinstellungen ändern:
Boot-Options etc., für Schnittstellen: Advanced Settings:
LX Terminal starten, Eingabe:

Code: Alles auswählen

sudo raspi-config


###########################################################

Mausgeschwindigkeit für Funkmaus anpassen:
/boot/cmdline.txt editieren

Code: Alles auswählen

sudo leafpad /boot/cmdline.txt
und am Ende eintragen:

Code: Alles auswählen

usbhid.mousepoll=0
(muss alles in einer Zeile bleiben)


###########################################################

NumLock auf Nummernblock beim Booten einschalten

Code: Alles auswählen

    sudo apt-get update
    sudo apt-get install numlockx

Then:

Code: Alles auswählen

    sudo crontab -e
#and add the line
    @reboot numlockx on

Next, open the file /etc/kbd/config, and un comment the line

Code: Alles auswählen

    LEDS=+num

near the end of the file.
Reboot.


###########################################################

ausführbare Bash-Scripte erstellen
(ähnlich wie .BAT-Dateien unter MSDOS/Windows):
(sudo) leafpad im LX Terminal oder den Texteditor öffnen ,
ins gewünschte Verzeichnis wechseln,
Befehle untereinanderschreiben
sichern unter *.sh

Datei per Dateimanager auswählen,
Maus-Rechtsklick:
-> Permissions tab -> ändern auf 'Execute' to 'Anyone'.
für eine Script-Datei mit Namen "meinscript.sh" geht das auch per Kommandozeile mit
chmod 755 meinscript.sh


Benutzer-Eingabe abfragen (y/n etc):
https://stackoverflow.com/questions/226 ... ell-script

###########################################################

Verknüpfung erstellen:
ebenfalls aus Dateinamanger -> rechter Maus-Click -> Edit
-> Verknüpfung erstellen (Create Link), -> Ziel z.B. Desktop o.a.


###########################################################

wav-Dateien mit Audio-Player verknüpfen
wav-File auswählen, rechter Mausklick
-> Kontext-Menü
-> Datei-Eigenschaften
-> "Öffnen mit"
-> Kartei-Karte für "eigene Befehlszeile"
-> Kommandozeile: omxplayer %f
-> Anwendungs-Name: Omxplayer
-> OK


###########################################################

Screenshot erstellen



###########################################################

cpu-Temperatur kontrollieren:

aus Raspberrypi Forum:
You can read the CPU temp via bash script. Save this script as getTemp.sh in /usr/local/bin folder and give execute permission with chmod +x /usr/local/bin/getTemp.sh command. Then run it, you will get temp values.

Code: Alles auswählen

#!/bin/bash
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$(($cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % $cpuTemp1))

echo CPU temp"="$cpuTemp1"."$cpuTempM"'C"
echo GPU $(/opt/vc/bin/vcgencmd measure_temp)


C-code:

Code: Alles auswählen

float systemp, millideg;
FILE *thermal;
int n;

thermal = fopen("/sys/class/thermal/thermal_zone0/temp","r");
n = fscanf(thermal,"%f",&milldeg);
fclose(thermal);
systemp = millideg / 1000;

printf("CPU temperature is %f degrees C\n",systemp);



###########################################################

Task killen, der ungewollt noch läuft :

FTrevorGowen hat geschrieben: I would try ps aux to list running processes and their Process ID's, look for the(your) user name and the relevant program name and then kill -9 pid, replacing "pid" by the actual Process ID number.
HTH,
Trev.


###########################################################

disable screensaver:
(danke an Rive, Raspberry.org Forum!)

It is easy (if you have anything on like xscreensaver, or light-locker, remove it)
Then, in terminal, open:

Code: Alles auswählen

    sudo leafpad ~/.config/lxsession/LXDE-pi/autostart

add:

Code: Alles auswählen

@xset s 0 0
@xset s noblank
@xset s noexpose
@xset dpms 0 0 0

'select all', then right click 'copy', then scroll to bottom with down arrow key, then 'paste'

so it looks like this:
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@xset s 0 0
@xset s noblank
@xset s noexpose
@xset dpms 0 0 0[/quote]
save with 'Ctrl' + 'x' key, then 'y', then 'enter'

Code: Alles auswählen

    sudo reboot




###########################################################

Auto running a program after boot :

https://www.raspberrypi.org/forums/view ... 54#p921354

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 11:01




Hier geht es jetzt weiter mit Geany (Editor und IDE) :



Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 11:01

Raspberry Pi: Geany als C/C++ - Entwicklungsumgebung (IDE)

http://www.geany.org/
http://plugins.geany.org/downloads.html

Anm.: bei den aktuellen Jessie-Builds mit grafischem Pixel-Desktop (ähnlich wie Windows) ist Geany bereits komplett vorinstalliert und kann über das Untermenü "Programmierung" gestartet werden!

a) System-Update und github Zugang installieren

Terminal/Konsolen-Fenster öffnen:

Code: Alles auswählen

 Menu > Other > LX Terminal

Zum Download und zur Installation eingeben:

Code: Alles auswählen

sudo apt-get update
sudo apt-get upgrade
sudo reboot now
sudo apt-get install git



b) Geany IDE installieren und konfigurieren

Terminal/Konsolen-Fenster öffnen:

Code: Alles auswählen

 Menu > Other > LX Terminal


Zum Download und zu Installation von Geany eingeben:

Code: Alles auswählen

sudo apt-get install geany


Geany wird im Menü unter "Entwicklungswerkzeuge" abgelegt. Hier kann man auch eine Verknüpfung für den Desktop erstellen.

Einstellungen für Geany vornehmen:
Geany -> Datei -> Neu(aus Vorlage) -> main.c;
die Standard-Vorlagen sind im Systemverzeichnis /usr/share/geany/templates/files/.
Falls man die Vorlagen nicht systemweit ändern will, kann man sie ins Benutzer-Verzeichnis $HOME/.config/grany/templates/files/ kopieren und dort bearbeiten.
edit: klappt noch nicht... :falsch:

Erstellen -> Kommandos zum Kompilieren/Erstellen konfigurieren ->

Kompilieren: gcc -Wall -c "%f"
Erstellen: gcc -Wall -o "%e" "%f"
//Die letzten Parameterübergaben können varieren, je nachdem, welche GPIO Verwaltungssoftware benutzt wird
(alternativ z.B. pigpio, wiringPi, s.u.).


Ausführen: "sudo ./%e"
// Sollte der aktuelle Benutzer zur Gruppe root gehören, entfällt sudo.


Nun kann man
Kompilieren mit F8,
Erstellen mit F9 und
Ausführen mit F5

das ist schon alles für die Raspi-C-Compiler Basis-Installation, jetzt kann's schon losgehen!



c) 1. Testprogramm in ANSI-C, ob alle wichtigen libs vorhanden und korrekt eingebunden werden...!

(was kommt jetzt wohl...) :programmer:

Code: Alles auswählen

/*
 * test_gcc
 *
 * version
 * 
 */


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

//----------------------------------------------------------------------
int main(int argc, char **argv)
{      
   printf("Hello World!");
   
   return 0;
}

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 11:02

d) Einstellungen für C++:

genau wie oben, nur jetzt immer g++ statt gcc :

Erstellen -> Kommandos zum Kompilieren/Erstellen konfigurieren ->

Kompilieren: g++ -Wall -c "%f"
Erstellen: g++ -Wall -o "%e" "%f"
//Die letzten Parameterübergaben können varieren, je nachdem, welche GPIO Verwaltungssoftware benutzt wird.
optionaler Parameter für C(++)11:

Code: Alles auswählen

-std=c++11


Ausführen: "sudo ./%e"
// Sollte der aktuelle Benutzer zur Gruppe root gehören, entfällt sudo.


e) ...und das erste Testprogramm für C++ ... !!

Code: Alles auswählen

/*
 * test_g++
 *
 * version
 *
 */
#include <iostream>
#include <limits>
using namespace std;

const int SIZE = 81;


int main ()
{
   char array[SIZE];

   cout << "Bitte einen Text eingeben: ";

   cin.getline(array, SIZE);
   array[SIZE-1] = 0;
   cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');


   cout << "Eingabe war: " << array << endl;

}

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 11:03

f) Links zu C/C++ source code Examples:

(wird später noch teilw. detaillierter darauf eingegangen)
http://www.robot-electronics.co.uk/htm/raspberry_pi_examples.htm
https://git.drogon.net/?p=wiringPi;a=commit;h=b1dfc186efe327aa1d59de43ef631a2fa24e7c95

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5241
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Quick Guide für Raspberry Pi: C/C++ mit Geany für Newbies

Beitragvon HaWe » 14. Okt 2015 11:03

g) Upgrade zu gcc/gpp 6.x (ist in Raspbian Stretch bereits enthalten) :

Code: Alles auswählen

# Pi 2 (old) ARM 7:
wget ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-6.3.0/gcc-6.3.0.tar.bz2
tar xvf gcc-6.3.0.tar.bz2
cd gcc-6.3.0
contrib/download_prerequisites
mkdir obj
cd obj
../configure -v --enable-languages=c,c++ --with-cpu=cortex-a7 \
  --with-fpu=neon-vfpv4 --with-float=hard --build=arm-linux-gnueabihf \
  --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

sudo dd if=/dev/zero of=/swapfile1GB bs=1M count=1024
sudo chmod 0600 /swapfile1GB
sudo mkswap /swapfile1GB
sudo swapon /swapfile1GB

make -j5
sudo make install


für den neuen Pi 2 oder den Pi 3 den configure block ersetzen durch:

Code: Alles auswählen

# Pi 3 ARM 53:
../configure -v --enable-languages=c,c++ --with-cpu=cortex-a53 \
  --with-fpu=neon-fp-armv8 --with-float=hard --build=arm-linux-gnueabihf \
  --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf


Zurück zu „allgemeine / Nicht-Lego-Robotik und Elektronik“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss