FTDI Board as raspberry power supply - raspberry-pi2

We've just made our custom board with an atmega1280 and a FT232RL to communicate with a raspberry pi 2.
The board works well, bootloader:ok, arduino sketch upload:ok, serial comm to 1Mb:ok.
As I've already tested this before with an usb hub : the raspberry, only connected through an usb port, can start and boot. No problem.
And we imagine a board with the same feature, but nope...
With the default config of the FT232RL, when I connect the board via usb with a pretty 5V, the raspberry don't boot. If I connect the +5V of the board to the raspi GPIO with a wire, the raspi starts. And if I remove this wire, the raspberry stay on... So the usb power do the job!
I'm thinking to a probably problem with the ftdi eeprom's config ?
Here is the last config I used for ftdi_eeprom.conf :
# Identify the device to write.
vendor_id=0x0403 # Vendor ID
product_id=0x6001 # Product ID
max_power=0 # Max. power consumption: value * 2 mA. Use 0 if self_powered = true.
# Strings
manufacturer="FTDI" # Manufacturer
product="EB_BOARD" # Product
serial="EB_BOARD_V2_0" # Serial Number
# Options
self_powered=true # Turn this off for bus powered
remote_wakeup=true # Turn this on for remote wakeup feature
use_serial=true # Use the serial number string
# Normally out don't have to change one of these flags
#BM_type_chip=true # Newer chips are all BM type
in_is_isochronous=false # In Endpoint is Isochronous
out_is_isochronous=false # Out Endpoint is Isochronous
suspend_pull_downs=false # Enable suspend pull downs for lower power
change_usb_version=false # Change USB Version
usb_version=0x0200 # Only used when change_usb_version is enabled
# Dump to file
filename=ftdi_eeprom.dump
Please help us ! We make a beautiful board design, but now we have a wire traversing the two boards... So sad :)
Thank you!
Edit : the usb port provide 5v/3A to the raspberry.

Related

tcpreplay traffic not being seen in localhost with netcat

I have a pcap file that I modified with tcprewrite to set source and destination IP = 127.0.0.1, while the port numbers are different. I also set both mac addresses to 00:00:00:00:00:00 as I understand that comms over localhost ignore MAC. I made sure checksum was fixed.
When I run tcpreplay -i lo test-lo.pcap in one shell, and tcpdump -i lo -p udp port 50001 in another, I see the traffic. Yet, when I try to view the traffic with netcat -l -u 50001, it sees nothing. Wireshark is capturing the traffic correctly.
Side note: I'm seeing the following warning when running tcpreplay on localhost:
Warning: Unsupported physical layer type 0x0304 on lo. Maybe it works, maybe it won't. See tickets #123/318 That seems worrisome.
I'm asking because my own UDP listener code is also having the same problem as netcat and thought that maybe I'm missing something. Why would traffic be seen by tcpdump and wireshark, and not by netcat?
I'm asking because my own UDP listener code is also having the same problem as netcat and thought that maybe I'm missing something. Why would traffic be seen by tcpdump and wireshark, and not by netcat?
Look at this image of the kernel packet flow from wikipedia:
As you can see, there are different places along the path where packets can be accessed. Wireshark uses libpcap, which uses an AF_PACKET socket to see packets. Your UDP listener, like netcat, uses regular user-space sockets. Let's highlight both on this image. Wireshark obtains packets via the red path, netcat via the purple one:
As you can see, there is a whole sequence of steps packets have to go through in the kernel to get to a local process socket. These steps include bridging, routing, filtering etc. Which step drops your packets? I don't know. You can try tweaking the packets and maybe you'll get lucky.
If you want a more systematic approach, use a tool like dropwatch. It hooks into the kernel and shows you counters of where the kernel drops packets.

Redirecting mirrored traffic from OpenBSD

I have a software router running OpenBSD and a DPI service on a VM on a separate physical machine.
I want all the passing traffic to be mirrored from the OpenBSD machine to the DPI machine online (not bulk-wise but with reasonably minimized lag). I know of a method to tunnel tcpdump output via SSH to the listening host and tcpreplaying it there, but it feels really hacky.
What a proper method would be for my setup? Something tunnely perhaps like GRE mirroring?
If i understand correctly this could be done with a bridge.
Lets say you have incoming traffic on if1 , outgoing on if2 and you have an if3 back to back with your DPI machine and ip forwarding is enabled.
then you could
ifconfig bridge0 create
ifconfig bridge0 add if1 add if2 up
ifconfig bridge0 addspan if3
then according to man 4 bridge
SPAN PORTS
The bridge can have interfaces added to it as span ports. Span ports
transmit a copy of every frame received by the bridge. This is most
useful for snooping a bridged network passively on another host connected
to one of the span ports of the bridge. Span ports cannot be bridge
members; instead, the addspan and delspan commands are used to add and
delete span ports to and from a bridge.

Raspbian Stretch: Remote ssh connection ( port forwarding ) not working

Device: Raspberry Pi 2 Model B
OS: Raspbian Stretch ( no desktop ) with static ip
Router: Belkin F9K1103
DNS service: Hosting on Norwegian version of domainnameshop.com
Greetings. I'm in the process of setting up my Pi as a server. The current motive is to be able to ssh into the device from another network and host a Git server on it.
It works great at home using the local ip address, but when it comes to port forwarding port 22, NOTHING works... I've tried for at least 10 hours combined, scavenging the internet for solutions on this topic, rasbian / raspberry related port forwarding or general. Nothing seems to work. I've tried everything it seems, and no matter what i do the tests show that the port is CLOSED.
I'm currently port forwarding the Pi's local ip and port 22 on the networks port 22 ( also tried port 3322 to the pi's port 22 ) on BOTH the router and the modem using the internet provider's own service for port forwarding online ( Telenor ). The Pi is connected with an ethernet cable, and I've tried connecting it to both the router and the modem when doing all the tests. I've also tried to add 'Port 22' and 'Port 3322' in the Pi's SSH configuration file.
I've also tried to use a DNS service in which I'm forwarding my home network's ip address but still no luck.
Can anybody please help me before I go insane? I'm I missing something crucial? I can't count on both my hands how many forum posts I've been reading and guides on both raspberry or general port forwarding..
Ok so I found out what was wrong.
Our modem is quite new and advanced, and the internet provider has their own online admin panel for it with its own port forwarding solution and what not. So this was apparently a case of classic double NAT conflict. The router tries to port forward to the modem which would normally just bridge that onto the web, but the modem is in a sense being port forwarded too by the internet provider and it's own services.
What I had to do was reverting the static IP configs on the Pi, unplug it from the wifi router, then plug it directly to the modem and then port forward it using our internet providers online admin panel for the modem.
Now it works brilliantly.

Static IP, PI. raspbian jessie

Okay, here's the situation I am in. I have a raspberry Pi 2 model B. I have Raspbain Jessie installed as the OS. I have Apache installed as well. I have a web server running and i am able to edit it and access the site from different devices on different internet connections. I want to be able to connect to my RaspPi through SSH on my MacBook Pro. I am able to do this while on the same network. My Pi is plugged into the router via an Ethernet. What i have tried is, logging into my router and reserving an IP for my Pi, i also entered my MAC address here. I have gone into the port forwarding options in my router and have it set up as: HTTP, TCP, Server address(the one i reserved) my Ipv6, and Start port 80, end port 80. Ontop of that i have gone into my /etc/dhcpcd.conf file. There at the end of the file i added
interface eth0
static ip_address=10.0.0.100
static routers=10.0.0.1
static domain_name_servers=68.44.180.118 2001:558:feed::1 2001:558:feed::2
The guide I followed is attached here and follows other guides i have seen.
http://www.circuitbasics.com/how-to-set-up-a-static-ip-on-the-raspberry-pi/
Yet when i try to SSH remotely i cannot get a connection, and when i connect on the same internet i can connect as normal. Please if anybody sees what could help .
Your router's firewall is probably blocking the ports for SSH, which does not use port 80 (in raspbian, I think its default is port 22). If you are going to take the risk of leaving your SSH open to the public, you should probably switch it to a different port other than the default before opening up a port on your firewall. The Raspbian Community has a thread on how to properly change SSH's default server port. You'll also need to make sure your SSH client is using the same port. You will need to leave 80 open for web, and also forward the SSH port, which ever you choose that to be (22 is the default).

Raspberry PI Web server - Local connection good - outside local no connection

I don't have a ton of experience with routers or port forwarding, but I do have a new Raspberry Pi and I wanted to see if I could set up a simple Hello World page just for educational purposes. I have quite a bit set up with apache2 already installed and the web page works great on my local area network, however I can't connect to it using my LTE from my phone, telling me this thing does not connect to the internet.
I am currently using Rasbian under all the default settings from the pi.
My router is an all in one modem and router, from xfinity. After sifting through countless sites trying to solve this issue, the following 2 were the closest thing to my particular issue. My reputation is not high enough to put more than 2 links, so I will put the most important ones..
So to the best of my knowledge this is the way to do it ...
1) Set the web server up to work locally
2) Then go into the router with the IPv4 or IPv6 (shouldn't matter which) and forward all Port 80 traffic to, say, Port 8080 where my PI 'should' be listening, then send back my web page down through Port 80 to the client calling the web page.
Under 10.0.0.1 I find this...
Then I go to 'Advanced'
I have tried from Start port 80 to End port 8080, which my 2 PI files I edited to listen for that port.
Those files are under
sudo nano /ect/apache2/sites-enabled-000-default.conf
and
sudo nano /ect/apache2/ports.conf
I changed
Listen 80
to
Listen 8080
and all other combinations alongside changing my router Start and End ports... none of which worked so I am lead to believe there is either a knowledge gap or I am doing something terribly wrong.
I just want to put a simply Raspberry pi web server online from my Local connection at home using a Comcast xfinity router. If anyone has any experience doing, I would seriously appreciate it, I've spent far too many hours trying to walk through this alone, so now I am reaching out to the faithful stackoverflow community.
It sounds like you are almost there.
For you to be able to access your raspberry pi server from the internet, you need to find your external ip address. Your router has one external ip address that you can reach from the internet. While on your wifi, search google for "what is my ip" Google may display it as the top result, or you might have to click into a site like ipchicken. Write this IP address down.
Next, setup your router to forward all port 80 (default http port). Try setting Apache to listen on port 80, and have your router set with start port and end port to be port 80 (this makes it so you don't have to put :port-number in the address, i.e. you will do http://your-ip-address rather than http://your-ip-address:8080). The start port is the port on the external network, the end is the port that your Apache server is running on the raspi.
It looks like your raspi has the ip address of 10.0.0.17 on your local network based on your screen shot. If it doesn't, change the IP address in the port forwarding section of the router configuration to be the IP address of your pi. You can figure out what the assigned IP address of your pi is through the router interface, or by typing ifconfig -a and looking for the ip address of the adapter that you're using to connect to the network. Your router may have the ability to assign a static ip address to your raspberry pi while it's connected to your network. It would say something like DHCP reservation. You'd need to find the MAC address of your pi. You can do that with ifconfig -a as well. Then configure your modem to always assign your pi the same ip address that you've configured in the port forwarding.
Now that everything is setup, switch to your cellular connection and then try to go to the ipaddress that Google gave you.
type your-ip in browser address bar -> port 80 request to your modem's IP -> you've set external port 80 requests to be forwarded to port 80 on your internal network for the device 10.0.0.17 -> your raspberry pi will serve the HTML
Note: The external ip address of your modem is most likely not static unless you specifically pay for a static address. This address usually will stay the same for at least a day though, so if you're just testing, it's not a big problem. In the future, if you want to ensure that you'll be able to reach your pi, look into dynamic dns.