Quantcast
Channel: Linux Device Hacking - Displays
Viewing all 91 articles
Browse latest View live

LCD screen for your dockstar (cheap!

$
0
0
3 or 4 years ago a number of small Digital Photo Frame Keychain products based on the Sintronix st2205u chipset were mass produced. The st2205u is based on the 6502 CPU (similar to the old Commodore64) and the firmware can be easily hacked using opensource tools (i.e. crasm in Debian repos). Once hacked they can be used as usb powered color backlit displays for tools like LCD4Linux.

The photoframes use an internal rechargeable lithium battery which as a lifespan of 2 or 3 years so the old stock has difficulty holding a charge and consequently they can be found on Ebay very cheaply.

Don't buy new ones off Amazon - the latest generation of frames appear as a CDRW device (/dev/sr0) to Linux and cant be hacked, the old ones appear as a corrupt flash drive (/dev/sdb).

Background Info:
Picframe Project - main hack site - doesnt seem to have changed much in the last couple of years
st2205tool - tools and libraries to hack and control your photo frame
LCD4Linux - external display daemon (you need the latest svn version - Debian repo doesn't support st2205)

Howto hack:

DISCLAIMER: Attempting to hacking your firmware may well brick your photo frame, especially if you follow my quick and dirty instructions - don't try it if you are risk adverse.

1. Download & compile software
# st2205tool
wget http://www.neophob.com/files/st2205tool-1.4.3.tar.gz
tar xvfz st2205tool-1.4.3.tar.gz
apt-get install libgd2-xpm-dev
cd st2205tool && make && make install
# LCD4Linux
wget http://ssl.bulix.org/projects/lcd4linux/raw-attachment/wiki/Download/lcd4linux-0.11.0-SVN.tar.bz2
tar xvfj lcd4linux-0.11.0-SVN.tar.bz2
cd lcd4linux-0.11.0-SVN
./configure && make
2. Plug in your picture frame into a USB port & select 'Upgrade' or 'Update' if prompted (some do, some dont)

3. Find your picture frame device (/dev/sdX) by looking at dmesg output
# lsusb
Bus 001 Device 029: ID 1403:0001 Sitronix Digital Photo Frame
...
# dmesg | tail -12
usb 1-1.3: new full speed USB device using orion-ehci and address 29
scsi24 : usb-storage 1-1.3:1.0
scsi 24:0:0:0: Direct-Access     SITRONIX MULTIMEDIA       0.09 PQ: 0 ANSI: 0 CCS
sd 24:0:0:0: Attached scsi generic sg1 type 0
sd 24:0:0:0: [sdb] 4096 512-byte logical blocks: (2.09 MB/2.00 MiB)
sd 24:0:0:0: [sdb] Write Protect is off
sd 24:0:0:0: [sdb] Mode Sense: 0b 00 00 08
sd 24:0:0:0: [sdb] Assuming drive cache: write through
sd 24:0:0:0: [sdb] Assuming drive cache: write through
 sdb: unknown partition table
sd 24:0:0:0: [sdb] Assuming drive cache: write through
sd 24:0:0:0: [sdb] Attached SCSI removable disk
4. Hack your device
cd st2205tool
./hackfw.sh /dev/sdX
If the hack script finds a known hack for your device and prompts if it should go ahead and perform the hack...

DON'T DO IT! YOU SHOULD BACKUP YOUR FIRMWARE FIRST
Hit CTRL+C and cp fwimage.bin original-fwimage.bin
Then re-run ./hackfw.sh /dev/sdX - this time say 'yes' and go ahead with the hack

# Note: If you want reflash your old firmware, you can with...
# ./phack -uf original-fwimage.bin /dev/sdX


If the script cant find a hack...

Dont panic - this happened to me - start by having a look for your device on the Picframe website. There may be additional instructions to get your device to work. For the Coby DP152 you need to make a one line code change to the st2205tool source and download a new hack config, then recompile and rehack.

If you cant find any info and you are sure you have a Sitronix based frame you can still follow the directions in st2205tool/hack/newhack.txt. You'll have to download and compile a 6502 disassembler and analyze the disassembly. Let me know if you end up going in this direction as I have a perl script that attempts to automate the analysis.

5) Configure LCD4Linux
cd ../lcd4linux-*
# Download example lcd4linux.conf (looks like this)
wget -O lcd4linux.conf http://www.shrani.si/f/1c/J7/ynfJw3W/text.htm # edit out HTML cruft
# change device in config to be /dev/sdX
6) Start LCD4Linux
./lcd4linux -F -v -f ../lcd4linux.conf

Enjoy your new dockstar display!

BTW looks like the original hack comes from the same guy that put a dockstar in his Mac SE

-PG

Firmware files from dpf-ax rev 42 (10 replies)

$
0
0
You can flash this in Windows with ProgSPI or with restore.py in Linux. The supported models are listed here:supported models.

A newer flashlib for ProgSPI can be found here: http://forum.doozan.com/read.php?9,2435,9912#msg-9912

I will try to regularly update this thread with the latest binary builds from dpf-ax.

EDITED 12 Jul 2012: Replaced Rev 27 with Rev 28.
EDITED 26 Jul 2012: Replaced Rev 28 with Rev 29.
EDITED 17 Oct 2012:Replaced with Rev31 (version 0.320). A newer flashlib.
EDITED 18 Oct 2012: knowntypes.html now have contrast support.
EDITED 3 Dec 2012: Rev 37.
EDITED 2 Jan 2013: Rev 42.

dpf-ax Bug report - Flashing of splash image (6 replies)

$
0
0
./setsplash.sh ~/rainbow.jpg 128 128 usb0
Using ffmpeg pix_fmt rgb565be
Splashfile saved to /root/rainbow.128x128.rgb
Sending splashfile /root/rainbow.128x128.rgb to flash...
Found AX206 DPF
Got LCD dimensions: 128x128
offset: 0x30000
Erasing sector at 0x030000...
Flashing sector at 0x030000...
bulk write: Resource temporarily unavailable

The bulk write error will occur. Is this due to some code in lcdinit.s/lcdblit.s or something entirely? lcd4linux and other programs work normally. I will see most parts of the rainbow image on the frame after that.

st2205term/ax206term bug fix for version 0.11 and below (no replies)

$
0
0
I reported this problem via email to petergunn:
For the 5x8 font defined in fonts.txt, the last column of # (column 5) along the width isn't used hence it is behaving more like 4x8. This results in truncated capital letter Y and letter w among the character set.

The bug fix created by petergunn in st2205term.c:
static font_t *load_font(char *file,int num)
{
    fprintf(stderr,"load_font(%s,%d) - loading font defintion\n",file,num);
    FILE *fd=fopen(file,"r");
    if (!fd) { perror("fopen"); fprintf(stderr,"ERROR: could not open file : %s\n",file); exit(1); }
    int font_size[4][2];
    if (fscanf(fd,"%d %d %d %d %d %d %d %d",
               &font_size[0][0],&font_size[0][1],&font_size[1][0],&font_size[1][1],
               &font_size[2][0],&font_size[2][1],&font_size[3][0],&font_size[3][1])!=8)
    { fprintf(stderr,"ERROR: could read font sizes from file : %s\n",file); exit(1); }
    fseek(fd,1,SEEK_CUR); 
    int f,sz;
    for (f=0;f<num;f++)
    {
        sz=95*(font_size[f][0]+1)*font_size[f][1];
        if (fseek(fd,sz,SEEK_CUR)<0)
        { perror("fseek "); fprintf(stderr,"ERROR: could read font %d (sz=%d) from file : %s\n",f,sz,file); exit(1); }
    }

    sz=95*(font_size[f][0]+1)*font_size[f][1];
    font_t *d=(font_t *)malloc(sizeof(font_t)+sz);
    d->w=font_size[f][0];
    d->h=font_size[f][1];
    
    if (fread(d->data,1,sz,fd)!=sz)
    { fprintf(stderr,"ERROR: could read font %d (sz=%d) from file : %s\n",f,sz,file); exit(1); }
    fclose(fd);

    return d;
}

The new code will be uploaded in due time in the meantime please apply the fix manually if you need it.

Wiki for ax206 frames (no replies)

$
0
0
Wiki. I will try to update regularly with information extracted from the threads.

PyDPF VNC client (no replies)

$
0
0
Just the heads up that this version of PyDPF at here has VNC client support.

AX206 - Problem with "pale" display (5 replies)

$
0
0
Hello

I have hacked my display AX206 with fw_disp_delightdigi_black.bin (tried with fw_devel_delightdigi_black.bin too)
but I have got problem with "pale" display

No.1 is oryginal, no.2 is hacked.
http://img215.imageshack.us/img215/1061/zdjcie1024p.jpg

How can I set contrast ?? Backlight seems to be ok, brightness too.

dpf-ax 0.320 (16 replies)

$
0
0
Finally found the time to commit this version as revision 31.

From CHANGELOG:

* Support for model specific contrast init.
* Dpf type definition moved from config.h to ./lcd/TYPE/dpfmodel.h.
* New: knowntypes_builder.py builds type info from definitions in lcd/$(TYPE)/dpfmodel.h:
  - fw/knowntypes.py - for use by identify.py
  - fw/knowntypes.html - simple html page listing all supported dpfs.
* Identify.py rewrite:
  - Commandline options (-v = verbose, -d = developer support) replace manual dev_mode editing.
  - Extended developer support by putting dump-snipppets and disassembler-scripts in folder fw/identify.out.
  - Detection of default brightness / contrast value.
  - Better identification of models mit non-standard init ("fake" CRC generation).
  - Replaced knowdpfs.py with autogenerated knowntypes.py (see knowtypes_builder.py).
* Shebang added to all python scripts in folder fw.
* Hint to use hiddetach if dpf is claimed by hid added to rawusb.c
* Modelname change:
  - pearl -> pearl_portrait
  - pearl_landscape -> pearl
  - focal -> focal_portrait
  - focal_landscape -> focal
* New model:
  - acme_2
  - delightdigi_black_portrait
  - jovisa
  - linkdelight_2
  - linkdelight_3
  - pearl_custom

As you may already know, I had to change the init code for all dpfs. Because I have access only to a limited number of frames, most of the changes were done "blind".

So: please test the new version with your dpfs and post any findings (working / not working) for the different models here.

EDIT:
Please note that the following dpfs have no or no "real" contrast-table. So there is no "Contrast" item in "Setup" menu for these types:
acme_2, agk_violet, blue, coby_dp151_white, delightdigi_2_portrait,
dx104500, dx104838, dx21334a, dx21334b,
focal, focal_portrait, linkdelight_2, linkdelight, linkdelight_3,
pearl, pearl_portrait, pink, white.

Howerever, the default contrast value will be set on init for mostly all types. No contrast setting at all only for the following types:
acme_2, agk_violet, coby_dp151_white, dx104500, dx104838

superelchi

dpf-ax: unsupported dpf - requests (73 replies)

$
0
0
Please use this thread for posting requests for unsupported dpfs.

First thing to do before tinkering with the display:
MAKE A BACKUP OF THE ORIGINAL FIRMWARE!
let me repeat it:
MAKE A BACKUP OF THE ORIGINAL FIRMWARE!

Without a copy of this firmware it is impossible to add your dpf! Or recover it if something goes wrong!

There are two possibilities to backup the firmware with dpf-ax:

fulldump.py: backup of firmware only.
cd ./fw
sudo ./fulldump.py /dev/sgX
Where "X" is the device your dpf is connected to (normally "/dev/sg1" or "/dev/sg2").
The dump will be written to "full.bin".

identify.py: backup of firmware and check if your dpf is already supported.
cd ./fw
sudo ./identify.py /dev/sgX
Where "X" is the device your dpf is connected to (normally "/dev/sg1" or "/dev/sg2").
The dump will be written to "identify.out/full.bin".

If identify.py tells you that your dpf is not supported, upload the firmware somewhere and post a link or attach it your request.

Some additional infos would be nice:
- Manufacturer
- Link to shopping site.

"bulk write: Resource temporarily unavailable” - LCD4LINUX (1 reply)

$
0
0
Hi there,

i have a problem with my pearl dpf. I patched this display one year ago for my fritzbox. It runs perfect. No problems.

Now i wanted to try the same frame on my raspberry and the only message i was get is

"bulk write: Resource temporarily unavailable” Now I patched the dpf with the latest FW 0.3. and the problem is the same. I know the rapsberry had problems with usb powering. I tried already with similar usb cables, y-usb cabel, two powered usb hubs, directly on the rpi, other ac/dc powerd inputs and so on.

nothing will help.

I had also tryed to go directly with 5V on the frame -> no powering problem, but the problem still alive.

i don't know more what I can do. Can anyone help me?

greats bimmi

PyDPF not working due to Google disabling API! (3 replies)

$
0
0
Hi there Folks....


Finally now after nearly 2 days of trying out , installing things, many compiling errors and so on I got the Firmwares compiled from " http://dpf-ax.svn.sourceforge.net/ " ...

God I was raging many times til now! ^^

I flashed then the PearlDisplay (AX206) Landscape Mode while in Bootloader Mode and now there are many eyes looking at me! ^So the Flashing was successfull...

Now I also compiled lcd4linux and it is working and also installed tightvnc to get the PyDpf.py with my MPD Server working.


I am startig tightvnc with folowing command:
vncserver :2 -geometry 320x240 -depth 24

And after executing PyDPF.py I am getting following error:
root@soprano:/home/lcd4linuxstuff/pydpf/pydpf# python PyDPF.py
Found AX206 DPF
Got LCD dimensions: 320x240
Traceback (most recent call last):
  File "PyDPF.py", line 627, in <module>
    main()
  File "PyDPF.py", line 616, in main
    handler = RemoteEventHandler()
  File "PyDPF.py", line 476, in __init__
    self._mpdHandler = MPDHandler(self._DPF,dpfrender.MPDrender(self._DPF),config.MPD_REFRESH,self)
  File "PyDPF.py", line 269, in __init__
    super(MPDHandler,self).__init__ (DPF,render,timeout,parentThread)
  File "PyDPF.py", line 215, in __init__
    self._weather.update(config.WEATHER_CITY)
  File "/home/lcd4linuxstuff/pydpf/pydpf/utils/weather.py", line 59, in update
    self._wt = pywapi.get_weather_from_google(city)
  File "/home/lcd4linuxstuff/pydpf/pydpf/utils/pywapi.py", line 115, in get_weather_from_google
    handler = urllib.urlopen(url)
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 406, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 444, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden

I think it has to do with google disabling the Weather API. But I disabled as shown in the pydpf Config file the Weather feature and the Picture-Show Feature but it still gives me this error.
Is there a different easier way to show the VNC Screen on the DPF?
Can someone help me with this... I am near to completion...


And What I also wanted to ask:

Should I use the hackfin Firmwares or are there any more feature rich firmwares available for the Pearl AX206 Display?

I wanted to get the Display right into VNC Mode after bootup displaying MPD Informations. Is there a way to replace the Picture with the eyes with a self made picture? And when lcd4linux is shut down is there a way to show again this self made picture/logo again instead of showing the goodbye message from lcd4linux?

Is there also a way to change the view-mode of PyDPF while running? So e.g. when MPD is Playing it shows the MPD Informations and when MPD is not playing any Music the Display will show Time and weather or something else like disabling itself?

Is there also a way to control the Backlight directly over lcd4linux or do i need to set it manually to the intensity with the Buttons on the back of the DPF ?


Thank you in advance. Man. This was a real PITA to the state I got this working now. Only the PyDPF errors arent resolved now... I am really happy about any help!


Thank you!

Greetings Ron!

dpfsend 0.2 by MrLinux (no replies)

$
0
0
This is a setpic-like program called dpfsend for AX206 frames written by mrlinux to send still images to dpf-ax frames and supports png, jpg and gif formats. It supports resizing.

The bug fix for 320x240 frames was suggested by superelchi. I also updated README for a suggested compile/link against libdpf.so.

DPF(LCD Display) automatic reattach question (1 reply)

$
0
0
I use the lcd4linux on Iomega HMNHD-CE ( Debian squeeze is installed, not the original firmware ).

I use transmission to download file, download speed is 20MB/s, In the downloading process, when transmission CPU occupancy is high it is easy to appear USB LCD display automatic off-line and reattach.

When the USB device reattach, device will be assigned an new address. When the redistribution of the address exceeds the limit, there will be attach failure. must to restart the machine for reattach this device.

some dmesg log info:
[12202.720000] usb 1-2: new full speed USB device using oxnas-ehci and address 4
[12217.840000] usb 1-2: device descriptor read/64, error -110
[12233.070000] usb 1-2: device descriptor read/64, error -110
[12233.300000] usb 1-2: new full speed USB device using oxnas-ehci and address 5
[12248.420000] usb 1-2: device descriptor read/64, error -110
[12263.650000] usb 1-2: device descriptor read/64, error -110
[12263.880000] usb 1-2: new full speed USB device using oxnas-ehci and address 6
[12274.300000] usb 1-2: device not accepting address 6, error -110
[12274.420000] usb 1-2: new full speed USB device using oxnas-ehci and address 7
[12284.840000] usb 1-2: device not accepting address 7, error -110
[12284.840000] hub 1-0:1.0: unable to enumerate USB device on port 2
[12345.740000] usb 1-2: new high speed USB device using oxnas-ehci and address 8
[12345.890000] usb 1-2: configuration #1 chosen from 1 choice
[12345.890000] scsi2 : SCSI emulation for USB Mass Storage devices
[12345.910000] usb-storage: device found at 8
[12345.910000] usb-storage: waiting for device to settle before scanning
[12350.910000] scsi 2:0:0:0: Direct-Access     USBest   USB2FlashStorage 0.00 PQ: 0 ANSI: 2
[12350.920000] usb-storage: device scan complete
[12350.920000] sd 2:0:0:0: [sdb] 2048000 512-byte logical blocks: (1.04 GB/1000 MiB)
[12350.930000] sd 2:0:0:0: [sdb] Write Protect is off
[12350.940000] sd 2:0:0:0: [sdb] Mode Sense: 00 00 00 00
[12350.940000] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[12350.950000] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[12350.950000]  sdb: sdb1
[12351.100000] sd 2:0:0:0: [sdb] Assuming drive cache: write through
[12351.110000] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[12371.900000] usb 1-2: USB disconnect, address 8
[12424.470000] usb 1-2: new full speed USB device using oxnas-ehci and address 9
[12439.590000] usb 1-2: device descriptor read/64, error -110
USB LCD display reattach failure but usb-storage success.
Another success reattach dmesg log:
[20793.980000] usb 1-2: USB disconnect, address 2
[20794.290000] usb 1-2: usbfs: usb_submit_urb returned -19
[20795.180000] usb 1-2: new full speed USB device using oxnas-ehci and address 3
[20795.360000] usb 1-2: configuration #1 chosen from 1 choice
[21688.580000] usb 1-2: usbfs: process 12098 (lcd4linux) did not claim interface 0 before use


lcd4linux log info:

lcd4linux.c: got signal 1
lcd4linux.c: leaving main loop
DPF: shutting down.
drv_dpf.c: closing connection
lcd4linux.c: restarting...

DPF1026 KEENOX with AppoTech chip (1 reply)

$
0
0
hi

one member of my family give me a tiny dpf,
a KEENOX DPF1026 like this one:

DPF1026 KEENOX

I open it :

picture 1

picture 2

I have flashed the device with ProgSPI and this bin file:

fw_disp_dx104500.bin

he work well but I don't have any linux os...and there is no driver for window.
picture 3

I have two question plz

picture 3

1. is it possible to replace the Pm25LV040 by wiring an sdcard?

2. is it possible to reverse this device, in a normal usb mass storage (not a cd rom like it is already) with total access to write copy or paste...

thank you!

dpf-ax segmentation fault during cross compilation on dockstar (5 replies)

$
0
0
Hello,

when I try to cross compile on my dockstar, I get a segmentation fault:
root@dockstar:~/dpf-ax/trunk# make
[ -e src ] && (cd src; ./buildall.sh)
--------------------------------------
Building abeyerr_black
Segmentation fault
make[1]: *** [main.rel] Error 139
Segmentation fault
make[1]: *** [main.rel] Error 139
--------------------------------------

I am using sdcc_2.9.0-5_armel.deb, because with a later version (3.x), is did not work on my AMD64 Debian.
Could this be an issue?
lcd4linux compiled fine.

Regards, Dieter

what digital phoyo frame to buy (from ebay) (1 reply)

Where to find m_coby_dp152? (1 reply)

$
0
0
I've been trying to hack a recently-acquired Coby DP-152 according to these instructions. Step 5 requires a download of m_coby_dp152 from megaupload, but with megaupload seized the file is unavailable. I've searched the entire internet for it to no avail, but was hoping someone else might have had better luck? If anyone has a copy of this file or knows where to get it (or how to hack the Coby DO-152 without this), I would be eternally grateful!

compile issues dfx-ax (1 reply)

$
0
0
Hi

I'm trying to compile dfx-ax rev 40 on my debian wheezy but get these errors mostly asx8051 Command not found.

I have install sdcc?? Any ideas


main.c:48: warning 197: keyword '_asm' is deprecated, use '__asm' instead
main.c:53: warning 197: keyword '_endasm' is deprecated, use '__endasm' instead
main.c:76: warning 197: keyword '_asm' is deprecated, use '__asm' instead
main.c:78: warning 197: keyword '_endasm' is deprecated, use '__endasm' instead
main.c:151: warning 197: keyword '_asm' is deprecated, use '__asm' instead
main.c:151: warning 197: keyword '_endasm' is deprecated, use '__endasm' instead
main.c:173: warning 197: keyword '_asm' is deprecated, use '__asm' instead
main.c:173: warning 197: keyword '_endasm' is deprecated, use '__endasm' instead
make[1]: asx8051: Command not found
make[1]: *** [bankswitch.rel] Error 127
make: [default] Error 2 (ignored)
make -C python install

build-dpf-lcd4linux.sh: warning: macro `AM_ICONV' not found in library (5 replies)

$
0
0
Hello,

I have a problem with the build under Openmediavault 32bit, which is a debian based system

I receive:
...
patching file Makefile.am
./bootstrap:> aclocal
plugins.m4:362: warning: macro `AM_ICONV' not found in library
./bootstrap:> libtoolize --copy --force
libtoolize: putting auxiliary files in `.'
...
plugin_w1retap.o plugin_xmms.o  -L/tmp/dpf-ax/trunk/dpflib -L/usr/local/lib=
=20
-ldpf /usr/lib/libusb.so /usr/lib/libgd.so -lm
/usr/bin/ld: cannot find -ldpf
collect2: ld returned 1 exit status
make[1]: *** [lcd4linux] Error 1
make[1]: Leaving directory `/tmp/dpf-ax/trunk/lcd4linux'
make: *** [all] Error 2

I assume, I miss some packages, but cannot figure out which.
"gettext-base" for instance is installed.
I have attached the complete output, as well as the list of installed packages.
Does anybody have an idea what is missing?
Help would be appreciated!
Regards, Dieter

Help with dx27893_2 (1 reply)

$
0
0
Hi everyone.

First of all, sorry for my bad english. Im here for ask you about this DPF: dx27893_2

Can I use it to boot a .iso¿? I have an .iso (small linux script) with 46kb and the CDROM partition have 230kb (and the memory flash 8mb)

Can i do something to boot my .iso?

More info about the device (is it on original status):

[info]
UserId=User
StartPic=1
UserPic=14
LangIndex=0
Language=Chinese
FirmwareVer=EDPF1.1_STANDARD_V2.0.0
FlashType=Pm25LV040
FlashSize=512
PID=0x1315
LogoStr=Welcome
Titlename=DPFMate--v5.0.2.1
CorpLink=http://www.buildwin.com.cn
CopyRightTips=Copyright (C) 2007 AppoTech Corporation
ThumbColumn=3
ThumbWidth=56
JpgQuality=90
MaxPicNum=90
JpgFormat=1
ProgressCtrl=OFF
[LCD]
Width=96
Height=64


Thanks for all, Byw
Viewing all 91 articles
Browse latest View live